为什么我们不能在 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 中可以编译,不会出现任何错误

