我想知道什么被认为是C#最佳实践,私人/受保护的成员与公共吸气者,或公共吸气者与私人/受保护的制定者?
public int PublicGetPrivateSetter
{
get;
private set;
}
Run Code Online (Sandbox Code Playgroud)
private int _privateMember;
public int PublicGetPrivateMember
{
get { return _privateMember; }
}
Run Code Online (Sandbox Code Playgroud)
我觉得在你的代码中使用私有成员更明确它是一个私有的setter(使用命名约定).另一方面,使用私有setter可以选择使用虚拟(受保护),编写更少的代码,减少错误的空间,并且如果需要,可以为您提供添加副作用的选项.
我找不到什么被认为是最佳实践,或者即使一个被认为比另一个更好.从我所看到的通常80%的时间(从我看到的代码)人们不使用私人制定者...我不确定这是因为人们不知道私人制定者,或者因为它是被认为更好地实际使用私人会员.
编辑:
实际上,我在使用私有成员时忘记的其他好处是默认值和readonly的使用.
Mar*_*ers 33
我更喜欢使用自动实现的属性,除非默认实现没有做我想要的.所以在这种情况下,由于自动实现的属性可以满足您的需求,只需使用:
public int Foo { get; private set; }
Run Code Online (Sandbox Code Playgroud)
但是另一种情况是,如果要创建字段readonly(意味着可以在构造函数中设置字段的唯一位置).然后,您需要定义支持字段并将其标记为只读,因为自动实现的属性不支持:
private readonly int foo;
public int Foo
{
get { return foo; }
}
Run Code Online (Sandbox Code Playgroud)