将额外的东西注入默认的get'ters和属性的set'ters

时间:2011-07-22 14:57:43

标签: c#

通常你可以为属性做这样的事情:

public String s {get; set; }

使用默认的getter和setter制作属性。

此外,您可以自己实施这两种方法。

但是,我可以只“实施”他们中的一个,比如说,他们可以做额外的事情吗?

说出类似

的内容
public String s {
  get;
  set { 
    // some extra code here to happen on any setting of this property
  }

}

看起来我不能这样做(不编译)并且必须引入辅助私有变量,并适当填写get / set代码。有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:4)

不,你不能 - 自动实现的属性是“全有或全无”;他们只能 实现完全琐碎的属性。你需要自己介绍一个领域。

(就我个人而言,我并不介意太多,但我真的希望能够编写只能从构造函数设置的只读自动属性。)

答案 1 :(得分:0)

不幸的是,编译器不会允许您尝试执行的操作。你可以像这样设置一个自动属性......

public String s { get; private set;}

然后有一个特殊的设定方法...

public void SetS(string s)
{
     ...logic
}
相关问题