如何将属性设置器链接到委托?

时间:2010-04-27 11:56:19

标签: c#

我想将一个属性设置器提供给一个委托。这是怎么做到的?

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

3 个答案:

答案 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提到的方式使用匿名方法。