Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将属性设置器链接到委托?_C# - Fatal编程技术网

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

C# 如何将属性设置器链接到委托?,c#,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 =

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

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
还是我在想简单点

我相信你明白了

第三个在.NET 2.0中运行,其他的至少需要3.5:)

试试这个:

ChangeCountDelegate dlg = v => a.Count = v;
C#不支持属性委托


如果需要,您可以按照Snake提到的方式使用匿名方法。

这非常冗长,不是linq风格;-)我喜欢冗长:)优雅的编码。我相信你也可以选择第三个选项,即使在2.0版本中,也不必显式使用
new
。我喜欢通过多种方式实现所示目标的答案。。。很不错的!正如您所知,如果您使用的是.NET 3.5或更高版本,您真的不需要定义这个
ChangeCountDelegate
<代码>操作是一样的。
ChangeCountDelegate dlg = v => a.Count = v;