【C#】varキーワードによる変数宣言(JavaScriptとの相違点)
C#のvarキーワードによる変数宣言と、varキーワードの使い所について簡単にまとめました。
C#のvarキーワードとは
- 変数のデータ型を明示的に宣言する必要がない変数の宣言方法。
- コンパイラの型推定により、データ型が設定される。
JavaScriptとの相違点
C#は静的型付け言語のため、動的型付け言語であるJavaScriptの変数宣言とは異なる点があります。
C#のvarキーワードによる変数宣言は、以下のような特徴があります。
サンプルコードとエラー
namespace Study_ProgrammingCSharp
{
class Program
{
static void Main(string[] args)
{
//varキーワードで宣言された変数は、代入時にコンパイラの型推定により型付けされる。
var somethingWord = "something";
//静的な型付けのため、異なる型の代入はエラーとなる。
somethingWord = 111;
//初期化子がないと型推定できないため、エラーとなる。
var noInitialize;
}
}
}
varキーワードの使い道
静的型付け言語であるC#において、varキーワードによる変数宣言の使い所や、そもそも使うべきか?については議論が分かれているようです。
以下、オライリーの「プログラミングC# 第7版」よりvarを使う方が良い状況について一部抜粋します。
varを使う方が良い状況
- 明示的な型付けをしようとすると、同じ型名を2回書かねばならないコード(新しいオブジェクトの初期化など)
- キャストとジェネリックメソッド(原則として変数宣言で明示的に型名が指定されている場合)
- 匿名型の場合(実際の型名を書くことができないため、varによる変数宣言が必要)