use*_*077 7 c# c#-8.0 default-interface-member
使用C#-8.0的.Net Core Console应用程序中以下界面没有错误
interface I
{
public abstract void f();
public virtual void g() => Console.WriteLine("g");
public sealed void h() => Console.WriteLine("h");
}
Run Code Online (Sandbox Code Playgroud)
abstract
防止在接口中添加定义。virtual
并且sealed
需要在接口中进行定义。sealed
阻止派生类中的实现h
。
abstract
在接口中使用、virtual
和 sealed
时,在当前实现的 C# - 8 版本中还有其他含义或应用吗?它们应该如何以及何时在界面中使用?
这是来自提案:
接口的语法很宽松,允许对其成员进行修饰符。允许使用以下内容:私有、受保护、内部、公共、虚拟、抽象、密封、静态、外部和部分。
virtual
除非使用sealed
or修饰符,否则其声明包含主体的接口成员就是成员。private
修饰符virtual
可以用在函数成员上,否则该函数成员将是隐式的virtual
。类似地,尽管abstract
是没有主体的接口成员的默认值,但可以显式给出该修饰符。可以使用关键字声明非虚拟成员sealed
。
private
接口的成员或sealed
函数成员没有主体是错误的。函数private
成员不能具有修饰符sealed
。
归档时间: |
|
查看次数: |
556 次 |
最近记录: |