为什么 Win Forms 应用程序在静态 class 中有 Main,我应该留在里面
Why do Win Forms Apps have Main in a static class and should I stay within in
Windows Forms Application 项目将 Main 方法放在静态 class 中。
这对来自 Java 的我来说既奇怪又不舒服,而且我是一个相当新手的程序员。我有几个简单的问题可以帮助我更好地理解正在发生的事情以及应该如何根据惯例处理这些问题。
- 为什么这个 class 默认是静态的
- 我是否应该在 Main 中创建一个非静态 public class 的新实例,然后从 class 开始工作
- 如果不是,我应该如何编写入口点位于静态 class(结构上)
中的应用程序
为了启动程序,您需要一个对象及其方法的实例。在这种情况下,例如,为了启动你的Windows App,CLR通常在这种情况下的主要入口点是这个"Program.cs"。所以你需要调用 Program 然后调用它的静态方法。一个简单的代码表示可能是这样的:
//Example Entry point of Program just for interpretation
public static class Foo
{
private static int intID { get; set; }
public static string strName { get; set; }
public static string Start()
{
return "Program run successfully";
}
}
如果这是 CLR 的入口点,为了启动和调用它,您只需简单地:
Foo.Start();
在 WinForm 案例中:
Program.Main();
请记住,Program.cs 只是一个默认的项目模板。您可以删除它并在其他 class 中编写 Main 函数,甚至可以将静态 class 重命名为静态 Main 。
关于你的第二个问题,答案是肯定的。
Windows Forms Application 项目将 Main 方法放在静态 class 中。
这对来自 Java 的我来说既奇怪又不舒服,而且我是一个相当新手的程序员。我有几个简单的问题可以帮助我更好地理解正在发生的事情以及应该如何根据惯例处理这些问题。
- 为什么这个 class 默认是静态的
- 我是否应该在 Main 中创建一个非静态 public class 的新实例,然后从 class 开始工作
- 如果不是,我应该如何编写入口点位于静态 class(结构上) 中的应用程序
为了启动程序,您需要一个对象及其方法的实例。在这种情况下,例如,为了启动你的Windows App,CLR通常在这种情况下的主要入口点是这个"Program.cs"。所以你需要调用 Program 然后调用它的静态方法。一个简单的代码表示可能是这样的:
//Example Entry point of Program just for interpretation
public static class Foo
{
private static int intID { get; set; }
public static string strName { get; set; }
public static string Start()
{
return "Program run successfully";
}
}
如果这是 CLR 的入口点,为了启动和调用它,您只需简单地:
Foo.Start();
在 WinForm 案例中:
Program.Main();
请记住,Program.cs 只是一个默认的项目模板。您可以删除它并在其他 class 中编写 Main 函数,甚至可以将静态 class 重命名为静态 Main 。
关于你的第二个问题,答案是肯定的。