类中的属性与公共声明变量[重复]
Posted
技术标签:
【中文标题】类中的属性与公共声明变量[重复]【英文标题】:Property vs public declaration variable in a class [duplicate] 【发布时间】:2012-09-05 22:54:05 【问题描述】:可能重复:What is the difference between a field and a property in C#
这有什么不同:
class Name
public int x;
还有这个:
class Name
int cx;
public int x
get return cx;
set cx = value;
是一样的还是有一些不同? 谢谢
【问题讨论】:
一个是属性,另一个是字段。 您不会相信,但文档实际上包含关于该主题的an article。 加号:***.com/questions/653536/… 【参考方案1】:它们是不同的。
在第一个x
是一个字段,在后者x
是一个属性。虽然属性在代码中“像字段一样被访问”,但这正是 C# 的美妙之处;不同的定义实际上会导致不同的不兼容类型1.
使用自动属性相当于后者(但更容易编写):
class Name
public int x get; set;
我喜欢 Brian Rasmussen 的 this answer,提出一个相关/重复的问题:
字段和属性看起来相同,但它们不 [相同]。属性是方法,因此属性不支持某些东西,还有一些可能会发生在属性上但不会发生在字段上的事情。
答案接着列出了一些关键差异,包括用法和可观察语义。
1 将字段更改为属性(反之亦然)是一种类型破坏更改,并且需要早期绑定(例如静态类型)代码针对新类型重新编译。
【讨论】:
以上是关于类中的属性与公共声明变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章