值
规则 ID
CA1047
类别
设计
修复是中断修复还是非中断修复
非中断
原因
公共类型是 sealed(在 Visual basic 中为 NotInheritable),并声明了一个受保护的成员或受保护的嵌套类型。 此规则不报告 Finalize 方法的冲突,这些方法必须遵循此模式。
规则说明
类型声明受保护的成员,使继承类型可以访问或重写该成员。 按照定义,不能从密封类型继承,这表示不能调用密封类型上的受保护方法。
对于此错误,C# 编译器会发出警告。
如何解决冲突
若要解决此规则的冲突,请将成员的访问级别更改为专用,或使该类型可继承。
何时禁止显示警告
不禁止显示此规则发出的警告。 使类型保持当前状态可能会导致维护问题,而且不会带来任何好处。
配置代码以进行分析
使用下面的选项来配置代码库的哪些部分要运行此规则。
包含特定的 API 图面
你可以仅为此规则、为所有规则或为此类别中的所有规则配置此选项(设计)。 有关详细信息,请参阅代码质量规则配置选项。
包含特定的 API 图面
你可以根据代码库的可访问性,配置要针对其运行此规则的部分。 例如,若要指定规则应仅针对非公共 API 图面运行,请将以下键值对添加到项目中的 .editorconfig 文件:
dotnet_code_quality.CAXXXX.api_surface = private, internal
示例
下面的示例演示了与此规则发生冲突的类型。
public sealed class SealedClass
{
protected void ProtectedMethod(){}
}
Public NotInheritable Class BadSealedType
Protected Sub MyMethod
End Sub
End Class
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。