假设我在类中有一个属性,如下所示:
class testclass
{
public string Name {get; set;}
public void dosomething(){//...}
}
此格式与以下内容之间没有功能差异:
class testclass
{
public string name;
public void dosomething(){//...}
}
两个名称字段都可以设置为包含空字符串的任何内容,两者都可以无任何限制地检索。那么在get和set方法中没有验证或其他过程的情况下,上面详述的属性语义的用途是什么?我看到的一个用途是您可以删除get
或set
方法,使其分别只写或只读。我不知道这会有什么用处。
答案 0 :(得分:0)
主要原因是您可以在不破坏客户端代码的情况下更改实现。您现在可能不会进行任何验证或举办活动,但如果您将来决定怎么办?此外,属性可以绑定而字段不能绑定。