我已经安装了Visual Studio的新版本,并将项目设置为C#8。当我尝试使用如下所示的新界面功能时,它说我无法在界面中实现,这似乎以某种方式无法使用新功能。谁能解释为什么,它仍然不包括在2019年预览版中吗?
interface IDefaultInterfaceMethod
{
public void DefaultMethod()
{
Console.WriteLine("I am a default method in the interface!");
}
}
答案 0 :(得分:2)
基于this:
Microsoft已充实了有关C#版本8.0的更多详细信息,下一篇 计划对该语言进行重大发布。预计C#8.0将会发布 .Net Core 3.0的到来,这是2019年。
所有C#8功能仍处于开发初期,并且可能会发生变化。因此,最好等到这些功能最终发行后再发布。以下博客也可能会有所帮助:
Any estimation for C# 8.0 release date?
并非所有C#8.0功能都可用(Visual Studio 2019的预览1)。您可以在以下链接中找到当前可用功能的列表:
答案 1 :(得分:0)
.NET Core 3.0预览版1中没有默认接口方法。这确实是一个预览预览-即使没有一些人工修复,异步枚举也无法使用。 Roslyn团队decided to release the preview尽管有些事情无法解决:
我们应该告诉用户跳过此功能直到预览2吗?
这是预览而不是RTM。如果我们告诉用户由于存在错误而跳过预览功能,我们应该完全停止提供预览。
默认接口实现可通过SharpLab.io进行实验。该站点通过显示编译器为任何示例生成的C#,IL或汇编代码来显示编译器的工作方式。
Sharplab.io允许使用许多不同的实验性编译器。 Default Interface Methods
选项可以编译以下示例:
interface IDefaulter
{
int GoBust()=>0;
}
但是请注意日期-自2018年4月2日以来未对编译器进行更新。预览1中发布的功能是2018年10月的最新更新。