2
object[] objArray = new object[]{"blah", 4, "whatever"};

foreach(var value in objArray) vs. foreach(object value in objArray)

var が割り当てられた後もその型のままでなければならないことを除いて、それらの違いは何なのか、私は興味があります。一方が他方より優れているか?ありがとう。

4

4 に答える 4

4

の要素は宣言された型であるため、純粋に機能的な観点からは、ここでvarは単なるショートカットです。objectobjArrayobject

Usingobjectは、コードを読んでいる人にとって、配列内の項目がobject. の使用は、これを意味するものでvarはありません。あなたが投稿した最小限のケースでは、使用するプログラムの明快さに実際には何の違いもありません。

一方、作業しているオブジェクトのタイプがコンテキストからすぐにわからない場合は、タイプを明示的に宣言する方が有利な場合があります。一方、繰り返し処理しているコレクションの要素の型が冗長で目立たない場合は、 を使用すると有利な場合がありますvar。これにより、読者の目が混乱するのではなく、コードのロジックに引き寄せられます。ジェネリック パラメータの。

于 2012-06-19T00:17:25.250 に答える
1

varと他の型の唯一の違いは、コンパイラに型を決定させることです。

于 2012-06-19T00:08:56.933 に答える
1

varこの場合は、これら 2 つに違いはありません object

于 2012-06-19T00:09:10.047 に答える
1

あなたの例ではいいえ。しかし、

getを宣言objectsするとき: Boxing と Unboxing

でも。var を使用すると、正確な型名を指定した場合とまったく同じようにコンパイルされます。

var tempval = 5;と同じですint tempval = 5;

于 2012-06-19T00:22:49.963 に答える