namespace Guru { public struct PropertyKey { public const int UsageGeneral = 0; public const int UsageSettings = 1; public const string DefaultGroup = "guru"; public string name { get; private set; } public string key { get; private set; } public string group { get; private set; } public string tag { get; private set; } public int usage { get; private set; } public static PropertyKey General(string name, string group = DefaultGroup, string tag = "") { return new PropertyKey { name = name, key = $"{group}@{name}", group = group, tag = tag, usage = UsageGeneral }; } public static PropertyKey Setting(string name, string group = DefaultGroup, string tag = "") { return new PropertyKey { name = name, key = $"{group}@{name}", group = group, tag = tag, usage = UsageSettings }; } /// /// 判断两个属性 Key 是否相等 /// /// /// public bool Equals(PropertyKey other) { return name == other.name && key == other.key && group == other.group && tag == other.tag && usage == other.usage; } public override string ToString() { return $"#{tag}#[{key}]({usage})"; } } }