【问题标题】:How can I use IAdditionOperators<,,> from .NET 6 preview 7?如何使用 .NET 6 preview 7 中的 IAdditionOperators<,,>?
【发布时间】:2021-11-26 22:11:32
【问题描述】:

我已成功安装 .NET 6 Preview 7。我可以访问System.IAdditionOperators&lt;,,&gt;。我的问题是,当我尝试实现接口时,它不需要我定义 + 运算符。

我的项目文件:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
  </PropertyGroup>
  <PropertyGroup>
    <EnablePreviewFeatures>true</EnablePreviewFeatures>
    <LangVersion>preview</LangVersion>
    <TargetFramework>net6.0</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="System.Runtime.Experimental" Version="6.0.0-preview.7.21377.19" />
  </ItemGroup>

</Project>

我唯一的班级:

using System;

namespace TestCode
{
    public class Foo:IAdditionOperators<Foo,Foo,Foo>
    {
    }
}

即使我没有实现IAdditionOperators&lt;Foo,Foo,Foo&gt;,代码也会编译(它不应该!)。如何让它强制我实现 + 运算符?

我已经下载了 SDK,并将 Visual Studio 更新到版本 16.11.4。我已经选中了“使用 .NET SDK 的预览”框并重新启动了 Visual Studio。我还需要做什么?

【问题讨论】:

  • 根据source,这些是static 运算符,所以我想通常的实现约束不适用。您可以提交功能请求/错误报告。
  • 你可以找到2008年关于abstractstatic接口成员here的相关讨论。

标签: c# .net .net-6.0 preview-feature


【解决方案1】:

要使编译失败,您需要从终端使用 dotnet build 或安装 VS 2022 Preview(this answer 也有同样的问题)。至于VS 2019编译的代码——它 当您尝试启动应用程序时,运行时应该会失败。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多