必须使用私有访问权限声明字段。使用属性公开字段。

时间:2013-05-18 11:01:10

标签: asp.net stylecop

我总是从stylecop得到这个警告。这从课堂观点来看是有道理的。字段应该是私有的,并使用属性来公开字段

但我有一个代码隐藏,我已声明如下控件。这个警告没有意义。

     /// <summary>
    /// Table used to generate the UI
    /// </summary>
    protected Table HighlightTable;

我不想让我的控件具有私有或属性并将其暴露。它必须受到保护。

请稍微澄清一下。

2 个答案:

答案 0 :(得分:2)

确实有意义,您不希望将该类型的内部暴露给其他子类型。

protected字段表示继承者可以访问它,因此您打破封装 - 类型暴露内部状态。您可以通过将字段转换为具有受限可见性的属性来解决此问题

protected Table HighlightTable {get; set;}

或限制字段的可见性

private Table highlightTable;

有关其他意见,请参阅类似问题here

答案 1 :(得分:1)

我认为StyleCop是对的......该字段应该是私有的。

为什么将HighlightTable标记为受保护?你是否在派生类中使用它做什么?

如果你没有在一个衍生课程中做任何事情,它应该是私人的。

如果您在派生类中使用它,正如SyleCop所说,您应该创建一个属性并将 标记为受保护,并且您的字段应该是私有的。