1

extensionこのようなメソッドを呼び出したい

int.AnExtensionMethod()

これは可能ですか、それともインスタンスを呼び出す必要がありますか?

4

3 に答える 3

0

拡張メソッドを使用すると、新しい派生型を作成したり、再コンパイルしたり、元の型を変更したりすることなく、既存の型にメソッドを「追加」できます。したがって、上記で提案したことを行うことはできず、試みても意味がありません。拡張メソッドはMETHODSです。メソッドは、クラスまたはオブジェクトのインスタンスに作用します。

MSDNのこの基本的なイントロ、非常に類似した質問に対するこの回答を参照してください。

これがお役に立てば幸いです。

于 2012-12-05T11:29:31.730 に答える
0

あなたはこのようにすることができます

 public static class intext {
        public static int doubleMe(this int x) {
            return 2 * x;
        }
    }

このように呼びます

  Console.WriteLine(5.doubleMe());

しかし、私int.doubleMe()はあなたがこれをもっと読むことができるということは不可能だとは思いません: Why No Extension Properties?

より明確にするために

Console.WriteLine(5.doubleMe());

と同等です

Console.WriteLine(intext.doubleMe(5));

拡張メソッドは、メソッドを追加しないように既存の型を拡張するために使用されます。

于 2012-12-05T11:22:56.173 に答える
0

私の知る限り、クラスのインスタンスである必要があります。クラス自体に拡張メソッドを追加した覚えはありません。その上、なぜ拡張メソッドをint(またはその他の) クラスに追加したいのですか?

于 2012-12-05T11:24:19.233 に答える