的区别是什么,如果有的话,(重复)'public int x'之间的区别和'public int x {get;组; }
和public int x { get; set; }
之间
public int x;
?
的区别是什么,如果有的话,(重复)'public int x'之间的区别和'public int x {get;组; }
和public int x { get; set; }
之间
public int x;
?
第一个被称为字段。第二个是财产,在这种情况下,自动执行的财产。
属性的作用类似于字段,但使用getter和setter函数来检索和设置值。写入上述属性的另一种方式如下:
private int _x;
public int X
{
get
{
return _x;
}
set
{
_x = value;
}
}
在这种情况下,可变_x
称为支持字段。使用自动实现的属性,您无法访问后台字段或自定义getter/setter中的代码,但如果不需要,则不会比简短和简洁。
作为C#中的一个规则,大多数时候任何公共成员都应该暴露为属性而不是字段。
第一个是公共变量,可以从任何地方访问。
第二个是公共财产
检查属性tutorial了解详情。
属性有很多用途:它们可以在允许更改 之前验证数据;他们可以透明地公开某个类的数据,其中该数据实际上是从其他某个源(如数据库)中检索的;他们 可以在数据发生变化时采取行动,例如引发事件,或者 更改其他字段的值。
这两者之间的区别是,一个属性可以做些事情更多不只是获取/设置变量。
借此例如:
private int _x;
public int x
{
get
{
//do something
return _x;
}
set
{
if(_x != value)
PropertyChanged("x");
_X = value;
}
}
,当我们设置属性 - 我们通知的东西(PropertyChanged()
),该值已更改。这将是很难做的只是领域
是的,但给定了确切的代码,没有任何附加的功能,如事件或值检查,是否有任何实际的区别?换句话说,为什么在公共属性后键入{get set}如果你所做的都是直接获取X的值? – Kokodoko
我从来没有输入'get;组;' :-)我输入'prop'并按Tab键。而且,如果我以后需要添加功能性,那么我就准备好了。 –
第一个是公共变量,而第二个是公共财产。 –
如果只有一个网站,您可以搜索这样的东西,如 我不知道,谷歌? https://www.google.co.il/search?q=difference+between+properties+and+variables+c%23&oq=difference+between+properties+and+variabl&aqs=chrome.2.69i57j0l5.11837j0j8&sourceid=chrome&espv=210&es_sm = 122&ie = UTF-8#es_sm = 122&espv = 210&q =属性+ vs +变量+ c%23 –
在这种情况下,他对谷歌没有任何东西。他不知道这是一个“财产”。因此,他究竟能够在Google搜索中投入什么?我认为这是一个公平的问题... –