public c#8 中的接口成员
public interface member in c#8
从最新版的c#开始,可以写出如下接口:
public interface IMyInterface
{
public void MyMethod();
}
这对我来说似乎是一种代码味道,因为我觉得它的目的是编写以前可用的代码:
public interface IMyInterface
{
void MyMethod();
}
这两个接口完全一样吗? public
关键字 add/changes 有什么用吗?这是应该纠正的东西,还是我错了,现在应该 public
一直使用吗?
随着 C# 8 附带的 default interface methods 的引入,添加了能够设置显式访问修饰符的功能。默认接口方法支持不同的访问修饰符,因此至少为了一致性能够为所有成员指定访问修饰符。如果您指定了一个无效的访问修饰符(例如,没有主体的 private
方法),代码将无法编译。
Are those two interfaces exactly the same ? Does the public
keyword add/changes anything ?
是的,默认 访问修饰符是 public
。 显式设置会得到相同的结果。
Is this something that should be corrected, or am I wrong and should public
be consistently used now ?
由你决定。例如,如果您喜欢对 类 中的字段使用 private
,那么您可能希望在您的接口中为 public
应用相同的明确性,现在这是可能的。
default interface methods 规范提案涉及访问修饰符更改的细节。
从最新版的c#开始,可以写出如下接口:
public interface IMyInterface
{
public void MyMethod();
}
这对我来说似乎是一种代码味道,因为我觉得它的目的是编写以前可用的代码:
public interface IMyInterface
{
void MyMethod();
}
这两个接口完全一样吗? public
关键字 add/changes 有什么用吗?这是应该纠正的东西,还是我错了,现在应该 public
一直使用吗?
随着 C# 8 附带的 default interface methods 的引入,添加了能够设置显式访问修饰符的功能。默认接口方法支持不同的访问修饰符,因此至少为了一致性能够为所有成员指定访问修饰符。如果您指定了一个无效的访问修饰符(例如,没有主体的 private
方法),代码将无法编译。
Are those two interfaces exactly the same ? Does the
public
keyword add/changes anything ?
是的,默认 访问修饰符是 public
。 显式设置会得到相同的结果。
Is this something that should be corrected, or am I wrong and should
public
be consistently used now ?
由你决定。例如,如果您喜欢对 类 中的字段使用 private
,那么您可能希望在您的接口中为 public
应用相同的明确性,现在这是可能的。
default interface methods 规范提案涉及访问修饰符更改的细节。