通常你可以为属性做这样的事情:
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代码。有什么想法吗?
谢谢!
答案 0 :(得分:4)
不,你不能 - 自动实现的属性是“全有或全无”;他们只能 实现完全琐碎的属性。你需要自己介绍一个领域。
(就我个人而言,我并不介意太多,但我真的希望能够编写只能从构造函数设置的只读自动属性。)
答案 1 :(得分:0)
不幸的是,编译器不会允许您尝试执行的操作。你可以像这样设置一个自动属性......
public String s { get; private set;}
然后有一个特殊的设定方法...
public void SetS(string s)
{
...logic
}