gpt4 book ai didi

c# - 如何正确定义类属性?

转载 作者:可可西里 更新时间:2023-11-01 08:15:24 28 4
gpt4 key购买 nike

在项目中定义新类时,正确/最佳做法是什么?过去我创建了如下类:

  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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com