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

接口方法与外界联系在一起,后者指定实现此接口的类执行某些操作。

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

接口可以具有保护或内部等访问说明符。因此,将“外部世界”限制为“整个外部世界”的子集。

示例

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

上面的示例将正确编译,没有任何错误

在C#8之前,默认情况下,接口成员是公共的。实际上,如果将访问修饰符放在接口成员(包括public)上,则会生成编译器错误。

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

上面的代码在c#7.0中引发了编译时错误,但是在c#8.0中它没有任何错误地进行了编译