【发布时间】:2016-03-12 20:38:21
【问题描述】:
我正在寻找有关使用自动实现属性时的最佳做法的建议。
如果我不需要引用类中的属性,我总是使用它们。但是,如果我确实需要访问类中的属性,我习惯于手动添加私有属性。
例如,如果我有一个名为 Person 且具有 firstName 和 lastName 属性的类,并且我不必在类中操作该数据,我会这样做:
public class Person
{
public string firstName { get; set; }
public string lastName { get; set; }
}
但是,如果我需要对这些属性做一些事情,我会这样做:
public class Person
{
private string _firstName;
public string firstName
{
get { return _firstName; }
set { _firstName = value; }
}
private string _lastName;
public string lastName
{
get { return _lastName; }
set { _lastName = value; }
}
public void testMethod()
{
Debug.Print(_firstName + " " + _lastName);
}
}
我的问题:这是一种好的做法吗?
【问题讨论】:
-
你应该可以直接使用类中的属性
-
你的理由是什么?为什么不直接使用类中的自动属性呢?您是否担心性能?
-
如果要覆盖属性,请使用“virtual”关键字声明要覆盖的属性
-
@GrahamS 是的。我推断访问公共财产意味着程序必须通过内部财产的吸气剂。我在想,既然可以直接访问,为什么还要这样做?
-
我会说,如果您的程序对时间非常关键,以至于属性所需的额外 deref 是性能问题,那么您可能不应该从 C# 开始!
标签: c#