object
とはどう違いvar
ますか?
質問する
1520 次
2 に答える
7
var
- タイプを明示的に指定しない。コンパイラにその型が何であるかを理解させます。- 型は設計時に固定され、他の型のオブジェクトを参照することはできません。
Pauli
コメントに記載されているように、intelliSense
.- 初期化する必要があります。
var i;
コンパイルされません。 - メソッドの戻り値の型として使用できません。
- ローカル変数でなければなりません。フィールドまたはプロパティではありません。
- とうまく動作し
Anonymous Types
ます。あなたが得るintelliSense
。
object
-System.Object
.
- 実行時に任意の型を参照するために使用できます。
- ここでは取得できません
intelliSense
。
例:
var i = 0; // i is of type `System.Int32`. Same as "int i = 0;"
i = "Some String"; // Compile time error.
object o = 0;
o = "Some String"; // Works
于 2010-12-20T06:09:33.183 に答える
1
- object は実行時に決定されますが、var はコンパイル時に決定されます。
例えば:
var i = 2;
object j = 2;
そして、あなたはそれを空想的に見ます:
IL_0000: nop
IL_0001: ldc.i4.2
IL_0002: stloc.0
IL_0003: ldc.i4.2
IL_0004: box [mscorlib]System.Int32
IL_0009: stloc.1
object アイテムはボックス化する必要があり、var アイテムはボックス化する必要がないことがわかります。
また、次のことができます。
object i; i = 2;
しかし、あなたはできません:
var i; i = 2;
コンパイルエラーになります。
- オブジェクトは、.Net のすべてのものから継承された型であるため、継承のために y の任意の型に対してオブジェクト x = y を実行できますが、var は暗黙的な型定義のキーワードです。たとえば、var i = 2 は int i = を意味します。 2.
于 2010-12-20T06:08:50.893 に答える