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

为什么我可以在C#的Interface中编写方法定义且编译通过?

问题解答

你遇到的情况是C# 8.0新增的默认接口方法特性,属于官方正式支持的语法,不是异常情况。

特性说明

  • C# 8.0及更高版本支持在接口中为方法编写默认实现,所有基于.NET Core 3.0、.NET 5+的运行环境都原生支持该语法,你使用的.NET 5完全符合版本要求。
  • 补充纠正一个表述偏差:不存在.Net Framework 5.0这个版本,微软官方的.NET Framework最高版本为4.8,.NET 5是原.NET Core系列的后续统一版本,属于跨平台的.NET平台分支。
  • 该特性的设计目的是解决接口迭代的兼容性问题:如果需要给已经上线、被多个类实现的接口新增方法,添加默认实现后原有实现类不需要做任何修改即可正常编译运行,不会出现破坏性变更。

示例代码

public interface IDemo
{
    // 带默认实现的接口方法
    void OutputInfo()
    {
        Console.WriteLine("这是接口的默认实现");
    }
}

// 实现类不需要强制重写新增的接口方法
public class DemoClass : IDemo
{
}

// 调用方式
IDemo demo = new DemoClass();
demo.OutputInfo(); // 正常输出:这是接口的默认实现

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:06:10