【发布时间】:2011-10-04 07:28:03
【问题描述】:
这些属性声明有什么区别?它们是如何工作的,为什么是首选。
public string aString {get;set;}
或
private string bString = "";
public string aString
{
get { return bString; }
set { bString = value; }
}
注意:这不是一个紧急或重要的问题,而是询问知道为什么应该以某种方式完成某事的人的问题。另外,请举例说明哪种方案最适合每种实施方式。
【问题讨论】:
-
可能的错字;设置 { 字符串 = 值; } 可能应该设置 { bString = value; } ?
-
这个问题被问了很多次。尝试搜索。
-
另一个可能的错误:auto 属性被声明为 public;全部财产是私有的。你是认真的吗?
-
请注意,如果您使用
BinaryFormatter(这本身是有问题的)或其他一些字段级反射工具,那么在它们之间进行更改可能会出现问题。通常使用自动实现的属性语法是非常安全和可取的。