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

C#调用接口void方法时报错:编译器提示尝试将void转bool如何解决

错误原因

你定义的Ixd接口中WriteNorM()方法的返回值为void,代表该方法没有任何返回值,但你在Main方法中把D.WriteNorM()、D1.WriteNorM()的调用结果作为参数传入了Console.WriteLine()方法,相当于尝试把无返回值的方法执行结果作为输入传给Console.WriteLine(),触发编译报错。你看到的“尝试将void转换为bool”属于部分C#编译器版本对这类非法用法的适配性报错,核心问题就是无返回值方法不能被当作值来使用。
另外WriteNorM()方法内部已经实现了Console.WriteLine()输出逻辑,不需要再套一层输出方法。

修正方案

直接调用WriteNorM()方法即可,不需要在外层再加Console.WriteLine()。

修正后完整代码
class xd
{
    interface Ixd
    {
        void WriteNorM();
    }

    class writeN : Ixd
    {
        public void WriteNorM()
        {
            Console.WriteLine("n");
        }
    }

    class writeM: Ixd
    {
        public void WriteNorM()
        {
            Console.WriteLine("m");
        }
    }

    static void Main()
    {
        Ixd D = new writeN();
        Ixd D1 = new writeM();
       
        D.WriteNorM();
        D1.WriteNorM();
    }
}

运行后会依次输出:

n
m

符合你的预期效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:36:05