C#中的“设置”类
我正在使用C#和sliverlight阅读Windows Phone 7的教程,我发现了这一行
public static class Settings { public static readonly Setting IsRightHanded = new Setting("IsRightHanded", true); public static readonly Setting Threshold = new Setting("Threshold", 1.5); }
我在C#
找不到Setting
类我想知道它是否在特殊命名空间下或需要额外的添加引用
这是我使用的Setting
类。 它支持通过INotifyPropertyChanged
进行更改通知,这对绑定很有用(在WPF / SL / etc中)。 它还维护默认值的副本,以便在需要时可以重置它。
作为一般规则, T
应该是不可变的。
public class Setting : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public event Action Changed; private readonly T _defaultValue; private T _value; public Setting(T defaultValue) { _defaultValue = defaultValue; _value = defaultValue; } public T Value { get { return _value; } set { if (Equals(_value, value)) return; _value = value; var evt = Changed; if (evt != null) evt(value); var evt2 = PropertyChanged; if (evt2 != null) evt2(this, new PropertyChangedEventArgs("Value")); } } public void ResetToDefault() { Value = _defaultValue; } }
如果它是一个自定义类,并且在教程中没有描述,那你可以重新实现它吗? 在我看来,这个类会有这样的签名:
public class Setting { public Setting (string name, T value) { Name = name; Value = value; } public string Name { get; set; } public T Value { get; set; } }
当然,可能还有更多。 在本教程中,此类正在访问/绑定哪些属性?
如果您使用的是“101 Windows Phone 7 Apps”一书,则在第20章中实现并解释了Setting类 。