为什么我的C#Windows Forms App会生成此代码?

时间:2019-05-03 14:46:22

标签: c# visual-studio

为什么在创建“ c#Windows Forms应用程序”时会生成此代码?

static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
}

我问的原因是因为我从未见过。就像这样,我习惯于创建项目并且它们为空。

static class Program
{
    static void Main()
    {

    }
}

我以前从未见过“ STAThread”或“ Application.etc ...”这样的东西。

我刚升级到Visual Studio 2019。

2 个答案:

答案 0 :(得分:1)

您使用旧的Visual Studio版本执行的所有解决方案/项目可能都是控制台/命令行项目。使用Visual Studio创建的是一个WindowsForm项目(创建项目时,默认情况下会打开一个具有空表单的模板),这是不同的,因为它使用的是“图形”环境,而不是您熟悉的黑白控制台。

具体来说,代码的作用是:

    Application.EnableVisualStyles();

为应用程序启用视觉样式。视觉样式是构成操作系统主题的颜色,字体和其他视觉元素。 (TensorFlow's map_fn only runs on CPU)。

    Application.SetCompatibleTextRenderingDefault(false);

是处理与旧框架之间某些兼容性的属性。如果您的应用程序未从.NET Framework 1.0或.NET Framework 1.1应用程序更新,则将其保留为默认值'false'。如果您不知道我在说什么......将其保留为默认值'false':D

    Application.Run(new Form1());

启动应用程序时,它将启动名为“ Form1”的表单(您可以在解决方案资源管理器中看到它)。

对于STAThread的解释,我将您从@Raymond Chen退还给MSDN LINK,但是我认为这对您来说有点太难了,只是暂时认为WindowsForm应用程序“必须”:)

答案 1 :(得分:0)

这是Visual Studio生成的代码,可在任何winform项目中的Program.cs中自动运行 这是代码Program.cs:


    sudo pip install ./bench