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

C#中如何在Main函数调用显式实现的接口方法?

显式接口实现方法无法直接调用的解决办法

问题原因

当类显式实现接口方法时,该方法仅属于接口成员,不属于类的公共成员集合,因此无法直接通过类的实例调用,编译器会提示方法不存在。

两种可行解决方案

方案1:将类实例转换为接口类型后调用

通过强制类型转换,把类实例转为接口类型,再调用方法:

// 初始化类实例
BubbleSortClass bubbleSort = new BubbleSortClass();
int[] testArray = {3,1,4,1,5};

// 转换为接口类型后调用PrintArray
((IConsoleControlInterface)bubbleSort).PrintArray(testArray);

方案2:改为隐式实现接口方法

如果你的类不需要处理多接口同名方法冲突,可以把显式实现改为隐式实现,这样方法会成为类的公共成员,直接通过实例调用即可:

// 隐式实现接口的写法
public class BubbleSortClass : IConsoleControlInterface
{
    // 去掉接口名称前缀,添加public修饰符
    public void PrintArray(int[] array)
    {
        // 控制台打印数组的逻辑
        foreach (int num in array)
        {
            Console.Write($"{num} ");
        }
        Console.WriteLine();
    }
}

// 调用方式
BubbleSortClass bubbleSort = new BubbleSortClass();
bubbleSort.PrintArray(testArray);

选择建议

  • 若类需要实现多个包含同名方法的接口,必须保留显式实现,使用方案1调用;
  • 若没有方法名冲突的场景,方案2的写法更简洁直观,调用更方便。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 22:40:40