我想知道在C#中什么是最佳实践:使用私有/受保护成员和公共的getter,还是使用公共的getter和私有/受保护的setter?
public int PublicGetPrivateSetter
{
get;
private set;
}
private int _privateMember;
public int PublicGetPrivateMember
{
get { return _privateMember; }
}
我认为在代码中使用私有成员更能明确它是一个私有setter(以命名约定为例)。 另一方面,使用私有setter可选用虚拟(protected),写入更少的代码,减少错误的可能性,并在需要时提供添加副作用的选项。
我没有找到什么被认为是最佳实践,甚至也没有人认为其中一个比另一个更好。从我看到的代码来看,通常80%的时间(我所看到的代码)人们不使用私有setter……我不确定这是因为人们不知道私有setter的存在,还是因为使用私有成员被认为更好。
编辑:
当使用私有成员时,还有其他优点,例如默认值和只读的使用。
readonly
,有没有理由不将其设置为公共成员?(public readonly int foo;) - Roee Gavirel