2009-06-21 10 views
1

2種類のコードの違いを教えてください。パフォーマンスの違いはありますか?ObjectQueryと "var"の違いは何ですか?

まずコード



       ObjectQuery departmans = staffContext.Departman; 
       GridView1.DataSource = departmans; 
       GridView1.DataBind(); 

Second Codes 

var departmans = staffContext.Departman; 
    GridView1.DataSource = departmans; 
       GridView1.DataBind(); 

おかげ

答えて

4

出力コードに有効な差がDepartmanのタイプに依存します。 Departmanの型がObjectQueryの場合、コードは同等です。

"var"キーワードは単にコンパイラに指示します。この変数の型を、それに割り当てる式と同じ型に設定してください。この場合、それはDepartmanのタイプです。

2

違いはありません(staffContext.DepartmanのタイプがObjectQueryで、ObjectQueryのサブクラスではないと仮定します)。コンパイラは、代入の右辺に基づいて型を推定します。

1

varキーワードが表す型は、コンパイル時に知っていなければなりません。したがって、どちらの型でも型が実際に同じである限り、実行可能コードは同じになります。

タイプは右側のタイプに基づいて推論されるため、必要な結果を得るためにタイプを指定する必要がある場合もあります。例:

これはもちろん、Streamという変数を与えます。一方:

var s = File.OpenRead(fileName); 

これは、タイプFileStreamの変数を提供します。

一般的に、右側のタイプが明白でない場合は、varキーワードを使用しないでください。

関連する問題