通常,接口名称应以I
开头
示例IClonable
,IListSource
,IXmlSerializable
,ISupportInitializeNotification
,ISupportInitialize
,ISerializable
,但在这里我找到了一个接口定义:
public interface _Exception { }
为什么接口名称定义为_Exception?为什么不是IException?这有什么特别的原因吗?
答案 0 :(得分:1)
问作者:]
似乎有人正在遵循另一个命名约定...这个接口名称是否会对你造成任何问题?
修改强>:
如果您指的是this接口,似乎在System.Runtime.InteropServices
命名空间中只应用了另一个命名约定
答案 1 :(得分:1)
根据this book,它解释了在编写框架的第一版时遇到的问题;在.Net框架生命周期的开始时,有很多关于指南(命名约定,接口与抽象类等)的讨论。
这就是为什么诸如Interop services之类的“旧命名空间”包含违反您今天可以找到的规则的实现,基本上是那些在实现代码时学习和实现的规则!
.Net框架仍然有旧的遗留代码,由于其在旧应用程序中的影响,无法更改。
我相信this book中还有更多信息,但现在不太确定。
答案 2 :(得分:0)
作者应该能够回答这个问题; - )
我敢打赌,这与这个接口是为了通过COM /非托管代码公开Exception
类的成员这一事实有关! COM- / unmanaged world中可能还有其他命名约定。
通常你是对的 - 在.NET世界中,界面名称应该以大写i
开头。
答案 3 :(得分:0)
我的猜测是,因为这个界面唯一有用的是包含某种类型的所有方法和属性,以便在COM中使用。
此接口用于从非托管代码访问托管类,不应从托管代码调用。