C#-8接口中的抽象、虚拟和密封方法



以下接口在带有C#-8.0 的.Net Core控制台应用程序中没有错误

interface I
{
public abstract void f();
public virtual void g() => Console.WriteLine("g");
public sealed void h() => Console.WriteLine("h");
}

abstract阻止在接口中添加定义。CCD_ 2和CCD_。sealed阻止在派生类中实现h

abstractvirtualsealed在接口中使用时,在当前实现的C#-8版本中是否有任何其他含义或应用?它们应该如何以及何时在接口中使用?

这来自提案:

接口的语法被放宽,允许在其成员。允许以下内容:私有、受保护、内部、,public、virtual、abstract、sealed、static、extern和partial。

声明包含主体的接口成员是virtual成员,除非使用了sealedprivate修饰符。virtual修饰符可以用于函数成员,否则隐含地CCD_ 13。类似地,尽管abstract是默认的没有实体的接口成员,可以给定该修饰符明确地可以使用sealed声明非虚拟成员关键字。

这是接口的privatesealed函数成员的错误没有身体。private函数成员可能没有修饰符sealed

相关内容

  • 没有找到相关文章

最新更新