You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让.NET 6 Preview 7的IAdditionOperators<,,>强制要求实现+运算符

问题原因

你遇到的现象属于.NET 6 预览版的正常表现:静态抽象接口成员(IAdditionOperators<,,>等算术运算符接口依赖的核心特性)并未在.NET 6 正式版中落地,该特性是.NET 7 才正式发布的成熟功能。.NET 6 预览版仅提供了该特性的早期原型实现,编译器层面未完整接入未实现接口成员的强制校验逻辑,因此会出现未实现+运算符也能正常编译的问题。

解决步骤
  • 升级开发环境:将.NET SDK升级到7.0及以上正式版本,Visual Studio升级到17.4及以上版本(对应支持.NET 7的稳定版本)
  • 调整项目配置:
    1. 将目标框架TargetFramework修改为net7.0或更高版本
    2. 移除原项目中System.Runtime.Experimental的预览包引用,.NET 7已将算术运算符接口纳入核心类库,无需额外引用预览包
    3. 将LangVersion设置为11或更高版本,也可直接设置为latest使用最新的C#版本
配置与代码示例

修改后的项目文件:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net7.0</TargetFramework>
    <LangVersion>11</LangVersion>
  </PropertyGroup>
</Project>

实现IAdditionOperators<,,>的正确代码示例:

using System;
using System.Numerics;

namespace TestCode
{
    // 未实现+运算符时,编译器会直接抛出未实现接口成员的错误
    public class Foo : IAdditionOperators<Foo, Foo, Foo>
    {
        public static Foo operator +(Foo left, Foo right)
        {
            // 实现自定义加法逻辑
            return new Foo();
        }
    }
}

注意:如果坚持使用.NET 6 预览版环境,无法实现编译器强制校验的需求,该版本的特性实现存在缺失,仅适用于早期体验,不建议用于正式开发。

内容的提问来源于stack exchange,提问作者Nigel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 09:09:04