6

.NET Mainメソッドの前にユーザー提供のコードを実行することは可能ですか?

コードを管理解除する必要がある場合は許容されます。

質問する理由は、UI要素が表示される前にSetCurrentProcessExplicitAppUserModelIDを呼び出す問題を解決する方法である可能性があるためです(Windowsタスクバーの個別のプロセスのグループ化で説明されています) 。

4

2 に答える 2

13

mainC#では、メソッドを含むクラスに静的コンストラクターを追加できます。静的コンストラクターのコードは、の前に実行されmainます。

于 2012-12-19T05:28:36.617 に答える
2

静的コンストラクターはMainの前に実行されますが、クラスが実際に何かによって参照されている場合に限ります。例えば:

class ClassWStaticCon
{
    static ClassWStaticCon()
    {
        Console.WriteLine("Hello world!");
    }
}

...
static void Main(string[] args)
{
    Console.WriteLine("Hello main.");
}

印刷します:

こんにちはメイン。

class ClassWStaticCon
{
    public static int SomeField;
    static ClassWStaticCon()
    {
        Console.WriteLine("Hello world!");
    }
}

...
static void Main(string[] args)
{
    ClassWStaticCon.SomeField = 0;
    Console.WriteLine("Hello main.");
}

印刷します:

こんにちは世界!こんにちはメイン。

実行の順序を制御する場合は、単一の静的'クラスでアクションキューデリゲートhttp://msdn.microsoft.com/en-us/library/018hxwa8.aspxを使用します。

于 2012-12-19T05:43:30.613 に答える