如果 Main 是起点,您如何从静态 Main 调用非静态方法

MIk*_*sny 1 c#

我是 C# 的新手,所以我希望我能正确地问这个问题。

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

static void Main(string[] args)
{
    Consol.Write(myFirstInt());
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个方法:

public int myFirstInt()
{
    return 5;
}
Run Code Online (Sandbox Code Playgroud)

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

Nul*_*Dev 5

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

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

    public static void Main(string[] args){ 
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

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