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

类中实现同名同参方法仅接口名不同,该技术概念是什么?

显式接口实现(Explicit Interface Implementation)

这是C#中的显式接口实现技术,核心用来解决两类问题:一是类实现多个接口时,接口间存在同名成员的冲突;二是控制接口成员的访问范围——显式实现的接口成员只能通过接口类型的引用调用,无法直接通过类实例访问。

核心特性与作用

  • 解决同名成员冲突:当类实现多个包含同名方法/属性的接口时,显式实现可以明确区分不同接口的对应成员
  • 隐藏接口实现细节:显式实现的成员不会作为类的公共成员暴露,仅为满足接口契约存在,适合不需要对外公开的实现逻辑

结合代码示例解析

你的代码里,AuthClass同时提供了公共Login()方法,以及显式实现IAuth接口的Login()方法:

public class AuthClass : IAuth 
{
    // 类的公共Login方法
    public string Login()
    {
        return "Method : You can be a developer";
    }
    
    // 显式实现IAuth接口的Login方法(不能加public等访问修饰符)
    string IAuth.Login()
    {
        return "Interface: Please learn the concepts";
    }
}

调用逻辑的差异:

  • 通过AuthClass类型实例调用时,执行类的公共方法:
    var obj = new AuthClass();
    Console.WriteLine(obj.Login()); // 输出: Method : You can be a developer
    
  • 将实例转换为IAuth接口类型后调用时,执行显式实现的接口方法:
    var obj2 = new AuthClass() as IAuth;
    Console.WriteLine(obj2.Login()); // 输出: Interface: Please learn the concepts
    

注意事项

  • 显式实现的成员不能添加任何访问修饰符(如public),其访问权限由接口本身控制
  • 显式实现的成员无法直接通过类实例调用,必须转换为对应接口类型后访问
  • 典型应用场景:类需要实现多个带同名成员的接口,或需要隐藏接口实现细节的场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 07:40:36