1

Visual Studio の Intellisense に問題があります。構造体で静的コンストラクターを作成するたびにC#、コンストラクターを呼び出そうとすると、Visual Studio の Intellisense が壊れます。デフォルトのコンストラクターでさえ、コンストラクターを見つけることができないようです。なぜ私がこの問題を抱えているのか誰かが知っていますか?

    public Triangle(int aX, int aY, int bX, int bY, int cX, int cY)
    {
        A = new Point(aX, bY);
        B = new Point(bX, bY);
        C = new Point(cX, cY);
    }

    public Triangle(Point a, Point b, Point c)
    {
        A = a;
        B = b;
        C = c;
    }

    public Triangle(Triangle value)
    {
        A = value.A;
        B = value.B;
        C = value.C;
    }

    static Triangle()
    {
        Empty = new Triangle(0, 0, 0, 0, 0, 0);
    }

インテリセンスなし

4

1 に答える 1

4

static constructorを直接呼び出すことはできません。最初のインスタンスが作成される前、または静的メンバーが参照される前に、型を初期化するために自動的に呼び出されます。

静的コンストラクターの仕様の概要は次のとおりです。

  • 静的コンストラクターは、アクセス修飾子やパラメーターを取りません。
  • 最初のインスタンスが作成される前、または静的メンバーが参照される前に、クラスを初期化するために静的コンストラクターが自動的に呼び出されます。
  • 静的コンストラクターを直接呼び出すことはできません。
  • ユーザーは、静的コンストラクターがプログラムで実行されるタイミングを制御できません。
  • 静的コンストラクターの一般的な使用法は、クラスがログ ファイルを使用しており、コンストラクターを使用してこのファイルにエントリを書き込む場合です。
  • 静的コンストラクターは、コンストラクターが LoadLibrary メソッドを呼び出すことができる場合、アンマネージ コードのラッパー クラスを作成するときにも役立ちます。
  • 静的コンストラクターが例外をスローした場合、ランタイムはそれを 2 回目に呼び出すことはなく、プログラムが実行されているアプリケーション ドメインの有効期間中、型は初期化されないままになります。

Visual Studio の問題について:

テストしましたが、すべて正常に動作しています。 ここに画像の説明を入力

于 2015-06-28T20:45:43.633 に答える