-2

次のコードを検討してください。

int i = 0;        
private void AddValue()
{
    i++;
}

AddValueメソッドを呼び出すと、iに1を追加するメソッド本体があります。今これをconsiter:

 ArrayList ar = new ArrayList();

ar.Add(1)を呼び出すと、arにオブジェクト1が追加されます。[追加]を右クリックして[定義に移動]を押すと、表示されます

public virtual int Add(object value);

arのオブジェクトとして1を追加するようなメソッド本体、つまりArrayListはありません。私の質問は、ArrayList.Add()のメソッド本体がどこにあるかです。そのようなMethodBodyがないように見える場合、どうやってArrayListにオブジェクトを追加するのでしょうか。

4

2 に答える 2

2

コードタブのタイトルを見ると、と表示されます[from metadata]。これは、表示している実装ではなく、「読み取り専用バッファーにC#ソースコードとして表示されるメタデータ」です。参照:ソースとしてのメタデータ

于 2012-12-05T08:03:07.183 に答える
2

実装はdll内にあります。任意の.NETデコンパイラを使用してコードを監視できます。無料の逆コンパイラはたくさんあります。検索を使用してください。

于 2012-12-05T08:12:38.560 に答える