了解 C# 对接口实现中静态方法的限制
由于几个关键原因,C# 禁止在接口实现中包含静态方法。
语义不一致:接口定义对象行为。 独立于特定实例运行的静态方法与这一基本原则相矛盾。 接口描述单个对象的功能,而不是共享功能。
契约完整性:接口充当类的契约。 排除静态方法可确保此契约一致地应用于实现类的所有实例,而不是一般的静态抽象。
示例:Animal
和 Person
提供的示例演示了 Animal
和 Person
如何以不同的方式实现 ScreenName
方法:
Animal
: 静态 ScreenName
方法将表示所有动物对象的通用名称。Person
: 实例方法将允许每个 person 对象使用唯一的名称。替代方法可以在不损害接口契约的情况下达到预期的结果。例如:
Animal
具有常量属性: 在 Animal
类中定义常量属性,并从 ScreenName()
返回其值,保留静态命名,同时遵守接口规则。总结:
C# 对接口实现中静态方法的限制维护了接口作为各个对象的契约的语义完整性。这确保了所有实现类的行为一致。
以上是为什么 C# 接口不能有静态方法实现?的详细内容。更多信息请关注PHP中文网其他相关文章!