我在我的类中有一个属性,在set访问器中具有很多逻辑:
private String text;
public String Text
{
get { return text; }
private set
{
// some actions with a value
value = value.Replace('a', 'b');
text = value;
}
}
如何防止其他开发人员(甚至是我自己)在这个类中更改 field 而不是 property?
如果有人写出这样的代码:
public Test(String text)
{
this.text = text;
}
它会破坏我的类的逻辑!
private string textNoSanitationWhenWrittenToDontUseWeWillBreakYourLegs;
。 - Jeppe Stig Nielsenset
是特权函数,因为它被允许修改text
,而其他函数则不行。另外一个函数get
被允许读取但不能写入。这就是要捕捉的概念,但我不知道在静态代码分析方面表达这一点的现状。当然,除了Binary Worrier的答案之外,他已经用编译器已经理解的语言清晰地表达了这个概念。 - Steve Jessop