【问题标题】:C# - Can I initialize before the Main starts?C# - 我可以在 Main 启动之前初始化吗?
【发布时间】:2013-02-16 18:04:35
【问题描述】:

我在面试时遇到了以下问题:

添加/更改以下程序,以便在 Main 之前调用 M 方法。 您不能更改 Main。

Main
{
    c C = new C()
}

Class C
{    
    Public C()
    {
    }

    Public M()
    {
    }
}

所以我将 M 编写为一个类,然后将 Public M 更改为静态构造函数,但这在 C# 中不起作用,仅在 C++ 中起作用。 我搜索了网络,但在 Main 开始之前找不到任何方法来初始化。

谢谢...

【问题讨论】:

  • 这个问题没有意义。不过,您可以在 C 实例化之前调用 M
  • Main 和public static void Main() 一样吗?
  • 是的,你漏掉了一些东西——如果面试官告诉你,你就不想在那里工作。 :)
  • M 应该是另一个类,还是 C 的第二个构造函数?
  • 其实解决方法是使用继承。让C继承另一个类,并在C中覆盖M。然后你可以在父构造函数中调用M,它在C构造函数之前被调用。

标签: c# static constructor main


【解决方案1】:

是的,你可以

编写Program类的类初始化器并将代码放在调用main之前,然后自己调用main。

partial class Program {
    static Program(){
        // do something
        Main();
        Environment.Exit(0);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-10
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    • 2012-06-22
    • 2011-08-16
    相关资源
    最近更新 更多