我意识到它似乎是C#中字段和属性之间有什么区别的重复?但我的问题略有不同(从我的观点来看):
一旦我知道了
是否有任何区别(风格/未来发展除外),如设置属性时的某种控制类型?
是否有任何额外的区别:
public string MyString { get; set; }
Run Code Online (Sandbox Code Playgroud)
和
public string myString;
Run Code Online (Sandbox Code Playgroud)
(我知道,第一个版本需要C#3.0或更高版本,并且编译器会创建私有字段.)
如果二进制版本将被其他框架语言使用,那么在C#中不使用下划线为私有字段添加前缀是否有任何问题?例如,因为C#是区分大小写的,你可以调用字段"foo"和公共属性"Foo",它可以正常工作.
这会对像VB.NET这样的不区分大小写的语言产生什么影响,如果名称只能通过大小写来区分,那么是否会出现任何CLS兼容(或其他)问题?
每当有关于Properties的可信度的问题时,我发现大多数讨论都是围绕函数/方法和属性进行的.但我也想知道使用属性与相关私有字段直接与公共字段直接使用的令人信服的理由,包含最常见的获取/设置行为而没有其他处理,我的意思是这种方式
public string CustomerName;
Run Code Online (Sandbox Code Playgroud)
VS
private string customerName;
public string CustomerName
{
get{return customerName;}
set(string value){this.customerName=value;}
}
Run Code Online (Sandbox Code Playgroud)