为什么我们不能在 C# 的接口内部指定访问修饰符?

csharpserver side programmingprogramming更新于 2025/10/2 11:52:17

接口方法是与外界签订的契约,它指定实现此接口的类执行一组特定的操作。

接口成员始终是公共的,因为接口的目的是允许其他类型访问类或结构体。

接口可以包含访问修饰符,例如 protected 或 internal 等。从而将"外部世界"限制为"整个外部世界"的一个子集。

示例

interface IInterface{
   void Save();
}
class Program{
   static void Main(){
      Console.ReadLine();
   }
}

以上示例可以正确编译,不会出现任何错误

在 C# 8 之前,接口成员默认为 public。实际上,如果在接口成员(包括 public 成员)上添加访问修饰符,则会生成编译器错误。

interface IInterface{
   Public void Save();
}
class Program{
   static void Main(){
      Console.ReadLine();
   }
}

以上代码在 C# 7.0 中会抛出编译时错误,但在 C# 8.0 中可以编译,不会出现任何错误


相关文章