当前位置: 首页 > 知识库问答 >
问题:

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

钦耀
2023-03-14

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

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

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

我创建了一个方法:

public int myFirstInt()
{
    return 5;
}

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

共有2个答案

夔修伟
2023-03-14

假设您在Program类中声明了myFirstInt方法,您只需

var program = new Program();
Console.Write(program.myFirstInt());

尽管我认为您只需将myFirstInt更改为static

蒋鸿文
2023-03-14

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

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,可能是consol.write。 我在上面的代码中更正了它。

 类似资料:
  • 问题内容: 尝试在Parent类中创建1个接口和2个具体类。这将使封闭类成为内部类。 现在,我真的不确定如何在静态main()方法中创建C类的对象并调用C类的call()方法。现在我遇到了问题: 问题答案: 这里的内部类不是静态的,因此您需要创建一个外部类的实例,然后调用new, 但是在这种情况下,您可以将内部类设为静态, 那就可以使用了

  • 我的应用程序中有两个类: runner类包含我的方法,我尝试在该方法中从Tasks类调用一个方法: 在我的Runner中,当我试图调用Tasks类中的createTaskList()方法时,我得到以下错误: 我该怎么解决这个?

  • 问题内容: 例如,我正在尝试做这样的事情 我收到一条错误消息,告诉我无法从静态环境中引用非静态变量。因此,如果这是真的,我将如何在main内部使用非静态方法? 问题答案: 你不能 非静态方法是必须在Test类的实例上调用的方法。创建Test的实例以在您的main方法中使用:

  • 我最近对 PHP 5.4 进行了更新,但收到有关静态和非静态代码的错误。 这是错误: 这是第371行: 我希望有人能帮忙。

  • 问题内容: 我正在尝试在计算机上运行以下代码,但是它没有执行任何操作,也没有显示任何错误。 有人可以帮帮我吗?顺便说一句,我正在使用Java 7。 问题答案: 如果将-放在-block 的末尾,它将在Java 6及更低版本中正确运行(没有有效的!)。这是因为该块是 在搜索有效方法 之前 执行的,因此,如果您在静态块的末尾退出程序,则不会收到任何错误。 但是, 此行为在Java 7中已更改。现在,您

  • 问题内容: 正在学习Java,现在遇到以下问题:我将main方法声明为 在我的主要方法中,因为它是静态的,所以只能调用其他静态方法!!!为什么呢 例如:我有另一堂课 所以在我的主班我声明一个 但是,如果它们不是静态的,我将无法调用任何方法。 这哪里出错了? 编辑:对不起,我的问题是:如何“设计”该应用程序,以允许我从“起点”调用其他类。 问题答案: 你只需要创建一个ReportHandler实例:

  • 我有一个php文件,代码如下,我收到错误: 严格的标准:非静态方法LinkCore::getImageLink()不应该被静态调用,假设$this从不兼容的上下文中...... 但如果我改变这一行: 具有 我明白了 解析错误:语法错误,意外'- 如果我用“publicstatic”声明所有函数,我会得到错误“致命错误:无法在类HTMLTemplateCustomPdf中使非静态方法HTMLTemp

  • 我正在使用存储库模式并尝试建立模型之间的关系。当我尝试运行存储()方法(在控制器中),该方法试图使用用户()方法(与方模型建立关系)时,我收到以下错误消息: 非静态方法不应该静态调用::user(),假设$this来自不兼容的上下文 我不明白为什么在尝试运行user()relationship方法时会出现此错误,但所有其他方法(包括$this- 以下是相关代码: