C# は、変数の値を含む変数の型情報を格納すると聞いたことがあります。
私の質問は、List<>
またはDictionary<>
オブジェクトを使用している場合、そこに含まれる各オブジェクトの型情報ストアですか、それとも一度だけですか?
Generics
の場合は1回のみ、の場合はArrayList
毎品と想像します。でも、聞きたかった。
C# は、変数の値を含む変数の型情報を格納すると聞いたことがあります。
私の質問は、List<>
またはDictionary<>
オブジェクトを使用している場合、そこに含まれる各オブジェクトの型情報ストアですか、それとも一度だけですか?
Generics
の場合は1回のみ、の場合はArrayList
毎品と想像します。でも、聞きたかった。
論理的に考えると、ランタイムは変数自体と一緒に各変数の型情報のコピーを本当に保存するのでしょうか? これは非常に無駄です!ほとんどのアプリケーションにはおそらく数百の型 (つまり、クラス) がありますが、数千の型インスタンスがあります。
ランタイムは確かに各変数の型を認識していますが、これは、それぞれに必要な型情報の独自のコピーが付随していることを意味するものではありません。これを念頭に置いて、特別なケースのディクショナリまたはコレクション クラスは必要ありません。それらは単なる参照のコレクションです。
MSDN によると、 Listは厳密に型指定されたオブジェクトのリストを表します
List<T>
コンストラクターが使用されると、デフォルトの容量で が作成されlist of T
ます