1

我在一个属性中有一个设置器,有点像这样:

set
{
string whatever = regex.replace();

_fieldStub = whatever;

}

如您所见,没有使用 value 关键字。这仍然是一个完全有效的设置块吗?

谢谢

4

3 回答 3

5

这仍然是一个完全有效的设置块吗?

是的,从技术上讲,它是一个有效的属性设置器。没有什么要求您使用传入的值。

但是,此属性可能非常不寻常,并违反所有预期行为。因此,我建议改为使用此方法。

于 2012-10-22T21:05:43.233 回答
0

它编译?
如果是 - 它是有效的
如果不是 - 它是无效的。
在验证代码时,最后一个词属于编译器。

于 2012-10-22T21:07:40.893 回答
0

它对编译器有效,但在 .Net 语言范围内没有意义。它的行为类似于方法,而不是 .Net 属性

public string MyProperty
{
  set
  {
   string whatever = regex.replace();

   _fieldStub = whatever;

  }
}

这不会对我的财产产生任何影响

myClass.MyProperty = "Hello"; //has no effect and makes no sense
于 2012-10-22T21:18:20.947 回答