首页 > 解决方案 > 如果 Main 是起点,您如何从静态 Main 调用非静态方法

问题描述

我是 C# 的新手,所以我希望我问得正确。

我创建了一个新的 C# 项目,其中是:

static void Main(string[] args)
{
    Consol.Write(myFirstInt());
}

我创建了一个方法:

public int myFirstInt()
{
    return 5;
}

这是从 Main 调用的。我知道我不能打电话myFirstInt(),因为它不是静态的。但是,如果 Main 是程序的起点并且总是必须是静态的,那么如何调用非静态方法呢?

标签: c#

解决方案


您必须创建一个正在运行代码的类的新实例。假设您的代码如下所示:

public class YourProgram {
    public int myFirstInt(){
        return 5;
    }

    public static void Main(string[] args){ 
        // ...
    }
}

您必须YourProgram像这样创建该类的新实例:

public class YourProgram {
    public int myFirstInt(){
        return 5;
    }

    public static void Main(string[] args){ 
        var yourProgram = new YourProgram();
        Console.Write(yourProgram.myFirstInt());
    }
}

旁注:您在代码中打错了字。你写了Consol.Write哪个灵魂Console.Write。我在上面的代码中更正了它。


推荐阅读