可以使用C#隐式运算符来设置属性吗?

时间:2015-08-31 01:06:19

标签: c# .net

我尝试使用隐式操作符来使用我的库,更容易一些。

我知道我可以隐含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;

这可能吗?

0 个答案:

没有答案