我想将一个属性设置器提供给一个委托。这是怎么做到的?
class A {
private int count;
public int Count {
get { return count; }
set { count = value; }
}
}
A a = new A();
delegate void ChangeCountDelegate(int x);
ChangeCountDelegate dlg = ... ? // should call a.Count = x
答案 0 :(得分:7)
ChangeCountDelegate dlg = (int x) => a.Count = x;
// or
ChangeCountDelegate dlg = x => a.Count = x;
// or
ChangeCountDelegate dlg = new ChangeCountDelegate(delegate(int x) { a.Count = x; } );
// or
ChangeCountDelegate dlg = new ChangeCountDelegate(int x => a.Count = x);
还是我想轻松一点? :)
我相信你明白了。
第三个适用于.NET 2.0,其他需要至少3.5 :)
答案 1 :(得分:1)
试试这个:
ChangeCountDelegate dlg = v => a.Count = v;
答案 2 :(得分:1)
C#不支持Property-Delegates。
如果需要,您可以按照Snake提到的方式使用匿名方法。