我尝试使用隐式操作符来使用我的库,更容易一些。
我知道我可以隐含get
值,但如果可以轻松完成,则不确定如何set
值。
这是我脑子里想到的pseduo代码...
public class Int32Notified : INotifyPropertyChanged
{
private int _value;
public int Value
{
get { return _value; }
set
{
_value = value;
OnPropertyChanged("Value");
}
}
public event PropertyChangedEventHandler PropertyChanged;
public static implicit operator int(Int32Notified value)
{
return value.Value;
}
private void OnPropertyChanged(string propertyName)
{
var handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
}
以及我在考虑使用它时......
public class Foo
{
// Yeah, i've not wired up the event... (yet)
public Int32Notified Age { get; set; }
}
...
// Creation and setting.
var foo = new Foo { Age = 10 };
// Getting
int age = foo.Age;
这可能吗?