用于继承的受保护变量(StyleCop SA1401)

Chr*_*ris 1 c# inheritance stylecop properties

所以我通过StyleCop规则修复了所有代码,而我正在经历的很多代码是SA1401 FieldsMustBePrivate.我理解它,我们一直很擅长实现它...有点.我们一直做的一件事就是让我们的变量受到保护并提供属性.这样,从基类继承的类可以访问变量本身,但继承链之外的类必须通过属性访问这些值.

我发现这个在基类需要设置在继承的类变量的值而对属性提供一个setter使得继承链以外类不能修改该值的情况下特别有用.什么我被"固定" SA1401问题的发现是,我打开了属性值进行设置,因为我需要设置他们在继承的类,我真的不想被设定.

我想我可能只是建立在基类,允许我设置的值,然后创建一个"新"公共财产,不允许我设置的值受保护的财产,但后来我不得不创建一个"新"公每个继承类的属性.

思考?

Iri*_*ium 5

你不能同时做两件事:

public SomeType SomeProperty { get; protected set; }
Run Code Online (Sandbox Code Playgroud)

然后该属性可以公开获取,但只能由类及其子类设置.