interface方法的访问修饰符是什么?它应该是public或protected,因为您在实现它们时可以访问它们(这是有意义的)。它也应该是abstract,因为它们没有实现。但最近我读了一本书,名为“通过C#进行CLR”,关于接口的章节如下
CLR要求将
interface方法标记为virtual。如果没有在源代码中显式地将该方法标记为virtual,编译器将该方法标记为virtual和sealed。
当您标记interface成员时,virtual编译器会抱怨访问修饰符无效。我的意思是,在interface中,没有任何访问修饰符是有效的,而不是编译器给它们的默认修饰符,对吗?有人能为我说清楚吗?
发布于 2013-07-11 08:46:18
接口(C#编程指南)
接口可以包含方法、属性、事件、索引器或这四种成员类型的任何组合。有关示例的链接,请参阅相关章节。接口不能包含常量、字段、运算符、实例构造函数、析构函数或类型。接口成员自动是公共的,它们不能包含任何访问修饰符。成员也不能是静态的。
以及接口成员的实现:
要实现接口成员,实现类的对应成员必须是公共,非静态的,并且具有与接口成员相同的名称和签名。
因此,您不能使用protected one实现接口成员。
https://stackoverflow.com/questions/17588889
复制相似问题