【发布时间】: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