2

我已经安装了新版本的 Visual Studio 并将项目设置为 C# 8。当我尝试使用如下所示的新界面功能时,它说我无法在界面中实现,这似乎以某种方式无法使用新功能。谁能解释一下为什么,它仍然没有包含在 2019 预览版中吗?

interface IDefaultInterfaceMethod
{
    public void DefaultMethod()
    {
        Console.WriteLine("I am a default method in the interface!");
    }
}
4

2 回答 2

2

基于

微软已经充实了关于 C# 版本 8.0 的更多细节,这是该语言的下一个计划主要版本。C# 8.0 预计将在 2019 年与 .Net Core 3.0 同步到来。

所有 C# 8 功能仍处于早期开发阶段,并且可能会发生变化。所以最好等到最终版本中的功能结束。以下博客也可能会有所帮助:

对 C# 8.0 发布日期有任何估计吗?

并非所有 C# 8.0 功能都可用(Visual Studio 2019 的预览版 1)。您可以在以下链接中找到当前可用功能的列表:

试一试 C# 8.0

于 2018-12-09T17:51:15.607 回答
0

默认接口方法在 .NET Core 3.0 预览版 1 中不可用。这确实是一个预览版预览 - 如果没有一些手动修复,即使异步枚举也无法工作。Roslyn 团队决定发布预览版,即使有些事情无法解决:

我们是否应该告诉用户在预览 2 之前跳过此功能?

这是预览,不是 RTM。如果我们告诉用户跳过预览功能,因为他们有错误,我们应该完全停止发布预览。

默认接口实现可通过SharpLab.io进行实验。该站点通过显示编译器为任何示例生成的 C#、IL 或汇编代码来展示编译器的工作原理。

Sharplab.io 允许使用许多不同的实验编译器。该Default Interface Methods选项可以编译此示例:

interface IDefaulter
{
    int GoBust()=>0;
}

但请注意日期 - 该编译器自 2018 年 4 月 2 日以来未更新。预览 1 中发布的功能最后一次更新是在 2018 年 10 月。

于 2018-12-13T13:41:22.267 回答