c# - 如果 Main 是起点,您如何从静态 Main 调用非静态方法
问题描述
我是 C# 的新手,所以我希望我问得正确。
我创建了一个新的 C# 项目,其中是:
static void Main(string[] args)
{
Consol.Write(myFirstInt());
}
我创建了一个方法:
public int myFirstInt()
{
return 5;
}
这是从 Main 调用的。我知道我不能打电话myFirstInt()
,因为它不是静态的。但是,如果 Main 是程序的起点并且总是必须是静态的,那么如何调用非静态方法呢?
解决方案
您必须创建一个正在运行代码的类的新实例。假设您的代码如下所示:
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
。我在上面的代码中更正了它。
推荐阅读
- node.js - Express JS - 仅在应用程序第一次启动时运行中间件
- frontend - 亚马逊 lex 发送凭证以查询数据库
- regex - 将 FSA 转换为正则表达式
- php - PHP中未捕获的ReflectionException(如何解决)
- swift - Xcode 10,Swift 4 - 将函数移动到单独的文件?
- javascript - 我正在尝试使用我的 nameInput 的值更新我的 div 元素,我的代码不对吗?
- algorithm - 使用 pixz 压缩而不丢失主文件
- php - Wordpress => PHP 函数是否可以编辑(无论如何)并单击所有帖子的“发布”?
- reactjs - 如何将父类应用于所有 BrowserRouter 路由?
- xcode - 从 iMessage 扩展应用程序的第二视图使用 MSMessage 发送消息