在项目中定义新类时,正确/最佳做法是什么? 过去我创建了如下类:
public class MyClass
{
public string FirstName {get; set;}
public string LastName {get; set;}
}
通常我会使用这样的类在项目中创建集合。
然而,随着我继续学习和阅读更多有关 c# sharp 的信息,我看到了类定义为的示例:
class MyClass //not set to public
{
private string _firstName; //first defined as fields
private string _lastName;
public string FirstName // then defined as properties
{
get { return _firstName; }
set { _firstName = value; }
}
public string LastName
{
get { return _lastName; }
set { _lastName = value; }
}
}
第一种方法在定义上是否不正确,或者这是 C# 中可接受的速记版本?作为最佳实践,您是否应该始终首先使用私有(private)字段定义类,然后使用获取/设置值将它们定义为属性?
我问是因为我在 C# 中自学,我正在努力改进并更好地理解正确的开发方法,一些示例和教程只是简单地陈述方法,而没有关于为什么首选一种方法的可靠解释(或应该完成)在另一个之上。
提前致谢
最佳答案
你的第一个例子:
public class MyClass
{
public string FirstName {get; set;}
public string LastName {get; set;}
}
具体是Auto-Implemented Properties , 在 c# 3.0 中引入。两种格式都没有错。第一个更像是一个“速记”。
对于更复杂的类型,有时使用旧样式仍然有用,并且仅公开私有(private)变量的某些属性或值,例如:
public class MyClass
{
private Dictionary<int, List<string>> _someInternalDictionary;
public int MyValuesCount
{
get
{
return _someInternalDictionary.Values.Count;
}
}
}
一个粗略的例子,但希望你明白我的意思。
关于c# - 如何正确定义类属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3215649/