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

VS 2022中无法调用Main函数,委托实现无控制台输出求助

问题分析与解决

你的代码存在核心错误,导致编译失败且无输出:
DoSomething是MyClassDel类的非静态实例方法,不能直接在静态的Main方法中通过方法名引用,必须先创建MyClassDel的实例,再绑定实例的方法。另外若你的项目是VS2022默认的顶级语句控制台项目,需确保项目设置中指定Program.Main为入口点(代码编译通过后可忽略此点)。

修正后的代码

using System;

namespace ConsoleApp1
{
    public delegate void SomeMethodPointer(); // 委托定义

    public class MyClassDel
    {
        public void DoSomething()
        {
            Console.WriteLine("In the function");
        }
    }

    public class Program
    {
        public static void Main(string[] args)
        {
            // 创建MyClassDel的实例
            MyClassDel myInstance = new MyClassDel();
            // 绑定实例的DoSomething方法到委托
            SomeMethodPointer obj = new SomeMethodPointer(myInstance.DoSomething); 

            // 调用委托(也可简化为obj(),和Invoke效果一致)
            obj.Invoke();
            // 保持控制台窗口打开(可选,避免运行后直接关闭)
            Console.ReadLine();
        }
    }
}

额外说明

  • 若想直接通过类名引用方法,可把DoSomething改为静态方法:public static void DoSomething(),此时初始化委托无需创建实例,直接写new SomeMethodPointer(MyClassDel.DoSomething)即可。
  • 委托调用可简化为obj(),和obj.Invoke()功能完全等价。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 10:31:08