我不明白初始化一个变量,像这样获取它的值有什么不同:
//define a local variable.
int i;
i= 0;
Console.WriteLine(i);
和get;set;用法:
public int i
{
get;
set;
}
i = 0;
Console.WriteLine(i);
我读了一些文章,但不知道什么时候会用到它。
发布于 2011-03-20 09:46:57
如果您认为以后可能需要更复杂的getter或setter,自动属性语法使您无需重新编译所有调用方即可进行升级。然而,从字段(成员变量)移动到属性是一个突破性的变化。
发布于 2011-03-20 10:01:54
让我们暂时忘掉属性...您真正要问的问题(您甚至可能不知道)是,为什么首先需要属性(或者其他语言中的getter和setter)?
这是为了推广encapsulation。
属性只是为getter和setter提供了更好的语法,也就是访问器(实际上,属性只是在幕后包装了set()和get()方法)。
在c# 3中,c#团队提出了自动属性,因为大量的属性不会对变量做任何事情(没有额外的逻辑),所以自动属性对于该场景来说是速记。
发布于 2013-06-09 17:04:43
基本上,它增加了开销,以换取附加事件的能力。除此之外,它还增加了复杂性和冗长,这使得代码更难阅读。如果您需要添加验证处理程序,这是一种很好的方法。在某些情况下。在大多数情况下,您知道(并且希望知道)变量(成员)正在被修改的确切位置。如果不这样做,那么您就会遇到代码管理问题,而不是语言问题。
认为一切“面向对象”都更好的想法是错误的。大多数开发人员正在逐渐理解这一点。我从事这项工作已经30年了,我可以告诉你,100次中有98次--简单是更好的。把你的编程精力花在不会增加不必要的复杂性的高效算法上,你会走得更远,并在趋势中生存下来。
https://stackoverflow.com/questions/5366232
复制相似问题