C#中的属性或变量

Sma*_*EGA 2 c# asp.net oop class .net-3.5

可能重复:
属性与字段:需要帮助掌握属性在字段上的使用.

我在课堂上看过属性和变量.

你能告诉我们我们使用属性的场景以及我们使用变量的场景吗?

Jon*_*eet 8

通常,无论如何,属性都由变量支持.即使你有一个自动实现的属性,如下所示:

public string Name { get; set; }
Run Code Online (Sandbox Code Playgroud)

幕后仍有变数.并非所有属性都由变量支持(例如DateTime.Now),但绝大多数属性都是.

实际上,您应该始终使用属性来访问其他类型的数据,而不是公开变量.(换句话说,变量本身应该是私有的.)这样你就可以将类的API与它的实现分开了......一个类如何存储它的数据应该只涉及类本身.

如果您只是引用类本身中的一段数据,那么您根本不需要属性,除非您想要在更改它时执行验证,或者类似的事情.

在通过属性公开变量之前,值得仔细思考 - 如果你只是一直这样做,你会失去一定数量的封装; 类型通常不应该只是由其他代码操纵的数据集合.他们应该使用其中的数据来公开更高级别的操作.这有点难以描述,我并不是说这些属性本身就不好 - 只是如果你不小心它们会被过度使用.