不要声明可见实例字段
更新:2007 年 11 月
TypeName |
DoNotDeclareVisibleInstanceFields |
CheckId |
CA1051 |
类别 |
Microsoft.Design |
是否重大更改 |
是 |
原因
外部可见的类型具有外部可见的实例字段。
规则说明
字段的主要用途应是作为实现的详细信息。字段应为 private 或 internal,并应当通过使用属性来公开。访问属性和访问字段一样容易,且随着类型的功能扩展,无需引入重大更改即可更改属性访问器的代码。仅返回私有或内部字段值的属性经过优化,可以像访问字段那样执行;在属性上使用外部可见字段不会提高性能。
外部可见是指 public、protected 和 protected internal(在 Visual Basic 中为 Public、Protected 和 Protected Friend)可访问性级别。
如何修复冲突
要修复与该规则的冲突,请将字段设置为 private 或 internal,并使用外部可见属性公开它。
何时禁止显示警告
不要禁止显示此规则发出的警告。外部可见字段不提供无法用于属性的任何好处。另外,不能使用 链接要求 保护公共字段。请参见 受保护的类型不应公开字段。
示例
下面的示例演示与该规则冲突的类型 (BadPublicInstanceFields)。GoodPublicInstanceFields 显示已更正的代码。
using System;
namespace DesignLibrary
{
public class BadPublicInstanceFields
{
// Violates rule DoNotDeclareVisibleInstanceFields.
public int instanceData = 32;
}
public class GoodPublicInstanceFields
{
private int instanceData = 32;
public int InstanceData
{
get { return instanceData; }
set { instanceData = value ; }
}
}
}