【问题标题】:public interface member in c#8c#8 中的公共接口成员
【发布时间】:2020-03-17 05:56:16
【问题描述】:

由于c#最新版本,可以写出如下界面:

public interface IMyInterface
{
    public void MyMethod();
}

这对我来说似乎是一种代码味道,因为我觉得我的目的是编写以前可用的代码:

public interface IMyInterface
{
    void MyMethod();
}

这两个接口完全一样吗? public 关键字是否添加/更改任何内容?这是应该纠正的事情,还是我错了,现在应该一直使用public

【问题讨论】:

标签: c# interface member public c#-8.0


【解决方案1】:

在 C# 8 中引入 default interface methods 时添加了能够设置显式访问修饰符的功能。默认接口方法支持不同的访问修饰符,因此至少对于一致性而言,能够指定访问修饰符是有意义的所有成员。如果您指定了无效的访问修饰符(例如,没有主体的 private 方法),则代码将无法编译。

这两个接口完全一样吗? public 关键字是否添加/更改任何内容?

是的,默认访问修饰符是public显式设置会得到相同的结果。

这是应该纠正的事情,还是我错了,现在应该一直使用public 吗?

这取决于你。例如,如果您喜欢将private 用于类中的字段,那么您可能希望在您的接口中为public 应用相同的显式性,因为这是可能的。

default interface methods 规范提案涉及访问修饰符更改的细节。

【讨论】:

    猜你喜欢
    • 2010-09-06
    • 2015-06-20
    • 2013-09-17
    • 2011-05-12
    • 2014-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多