C# 不使用';不要从形式开始

C# 不使用';不要从形式开始,c#,C#,默认情况下,创建Windows c#应用程序时,首先打开一些表单 static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } 在创建任何表单之前,是否可以在Main函数中执行一些操作-创建一些对象,执行这些对象的一些方法,并根据结果最终创建一些表单,或

默认情况下,创建Windows c#应用程序时,首先打开一些表单

static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
}

在创建任何表单之前,是否可以在Main函数中执行一些操作-创建一些对象,执行这些对象的一些方法,并根据结果最终创建一些表单,或者在其他情况下根本不创建任何表单-关闭应用程序?

当然。您可以用任何方式修改static void Main()。

当然可以。您可以按任何方式修改static void Main()。

当然可以。你试过了吗

static void Main()
{
    // you can add code here
    Application.EnableVisualStyles();
    // and/or here
    Application.SetCompatibleTextRenderingDefault(false);
    // and so on...
    Application.Run(new Form1());
}
所以可能是这样的:

static void Main()
{
    var someObject = SomeFactory.Fetch(someCriteria);
    if (someObject.SomeValue == false)
        Application.Exit();

    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
}
或许:

static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);

    var someObject = SomeFactory.Fetch(someCriteria);
    if (someObject.SomeValue)
        Application.Run(new FormForValueBeingSet());
    else
        Application.Run(new FormForValueNotBeingSet());
}

代码就是代码,您可以修改它并添加/编辑/删除任何您想要的内容。它是WinForms应用程序这一事实并没有改变应用程序启动时执行
static void Main()
的基本前提。方法中的任何内容都将被执行。

当然是。你试过了吗

static void Main()
{
    // you can add code here
    Application.EnableVisualStyles();
    // and/or here
    Application.SetCompatibleTextRenderingDefault(false);
    // and so on...
    Application.Run(new Form1());
}
所以可能是这样的:

static void Main()
{
    var someObject = SomeFactory.Fetch(someCriteria);
    if (someObject.SomeValue == false)
        Application.Exit();

    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
}
或许:

static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);

    var someObject = SomeFactory.Fetch(someCriteria);
    if (someObject.SomeValue)
        Application.Run(new FormForValueBeingSet());
    else
        Application.Run(new FormForValueNotBeingSet());
}

代码就是代码,您可以修改它并添加/编辑/删除任何您想要的内容。它是WinForms应用程序这一事实并没有改变应用程序启动时执行
static void Main()
的基本前提。方法中的任何内容都将被执行。

是的,您可以。

您可以通过在表单创建代码之前放置一些代码来测试这一点

static void Main()
{
    DateTime now = DateTime.Now;
    DateTime tomorrow = now.AddDays(1);

    if (DateTime.Compare(now, tomorrow) == 0)
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
}
。。。然后在Main()的开头放置一个断点


。。。然后逐步查看代码以查看其效果。

是的,您可以。

您可以通过在表单创建代码之前放置一些代码来测试这一点

static void Main()
{
    DateTime now = DateTime.Now;
    DateTime tomorrow = now.AddDays(1);

    if (DateTime.Compare(now, tomorrow) == 0)
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
}
。。。然后在Main()的开头放置一个断点


。。。然后逐步检查代码,看看它有什么效果。

至少尝试一下。。。我是说真的?至少试试。。。我的意思是认真的?+1,但可能值得一提的是,从设计器生成的代码中添加/编辑/删除任何您想要的内容都不是一个好主意:)@Moo Juice-我同意您的动机……但我越想这个问题,这个问题就越愚蠢。我们可以讨论设计器代码,但是我们怎么能忽略STAThread,然后是COM和线程,那么消息泵呢?明白我的意思吗?@P.Brian.Mackey,你说得对。如果OP不确定是否要在这里添加代码,那么OP已经超出了他的深度,需要坐下来读一本好书!使问题复杂化的是,WPF在默认情况下执行一个XAML文件作为条目对象。+1,但值得一提的是,从设计器生成的代码中添加/编辑/删除任何您想要的内容都不是一个好主意:)@Moo Juice-我同意您的动机……但我越想它,这个问题就越愚蠢。我们可以讨论设计器代码,但是我们怎么能忽略STAThread,然后是COM和线程,那么消息泵呢?明白我的意思吗?@P.Brian.Mackey,你说得对。如果OP不确定是否要在这里添加代码,那么OP已经超出了他的深度,需要坐下来读一本好书!为了使问题复杂化,WPF默认执行一个XAML文件作为条目对象。ohaiyo!我在这里看不到足够多的日本人!我在这里看不到足够多的日本人。