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
相关产品推荐
相关产品推荐

