C#のvarの使い方を解説。暗黙の型指定とは何か?
JavaScriptを書いたことがある方は、varでの変数宣言は馴染みがあるのではないでしょうか。C#での使い方としては似たような意味合いとなり、intやStringなど明示的な型指定ではなく、暗黙的な型指定をする場合にvarを使用します。
この記事では、varの概要やどのようなケースで使用できるかを紹介しますので、ぜひ参考にしてみてください。
- プログラマー
- C#でもvarを使用して変数が宣言できることは分かったのですが、どのような場面で使用するのでしょうか?
- プロジェクト
リーダー - 良い質問ですね。それでは、どのような場面でvarが使用できるか考えてみましょう。
実行環境
・Windows 10 Home
・Visual Studio Community 2019
C#で使えるvarの概要
C#のメソッド内で使用するローカル変数は、暗黙的な型指定としてvarを使用することができます。varを指定した場合、コンパイラは右側の値からデータ型を推測して決定します。
この仕組みを「型推論」と呼びます。
例えば、以下のようなコードがあったとします。
1
|
var i = 10; // 暗黙的な型指定
|
1
|
int i = 10; // 厳密な型指定
|
例1は厳密な型が指定されていませんが、コンパイラによってint型と判別されるため、例1と例2は機能的に等しくなります。
また、宣言と初期化が行われる場合のみvarが使用でき、nullでの初期化はできません。
varを使うべき場面
まずは、どのような場面でvarを使用できるのか紹介します。
変数の型が右側で明らかな場合
1
2
3
4
5
6
7
8
9
10
11
|
var num = 10;
var str = “This is a pen.”;
var list = new List<String>();
list.Add(“list1”);
Console.WriteLine($"num = {num}");
Console.WriteLine($"str = {str}");
Console.WriteLine($"list[0] = {list[0]}");
// → 出力結果は以下となります。
// num = 10
// str = This is a pen.
// list[0] = list1
|
for文のループ変数として使用する場合
1
2
3
4
5
6
7
8
9
10
11
12
|
var list = new List<String>();
list.Add(“Red”);
list.Add(“Yellow”);
list.Add(“Blue”);
for(var i=0; i<3; i++)
{
Console.WriteLine($"list[{i}] = {list[i]}");
}
// → 出力結果は以下となります。
// list[0] = Red
// list[1] = Yellow
// list[2] = Blue
|
varを使わない方が良い場面
次に、varを使わない方が良い場面もあるので、合わせて紹介しておきます。
変数の型が右側で明らかにならない場合
1
|
int sum = Sample.GetValue ();
|
どうしても、varで指定したいという場合は、変数名を分かりやすくすると、コードの可読性は上がるかもしれません。
- プログラマー
- なるほど、このような場面でvarを使用することができるのですね。これから積極的に使っていきたいと思います。
- プロジェクト
リーダー - そうですね。コーディングする上で、厳密な型が重要でない変数には使用してみると良さそうです。
場面に応じてvarを使い分けましょう
今回は、varを使用した暗黙の型指定を紹介しました。厳密な型を指定しないので、あまり使用しない方が良いのではと考える方もいるかもしれませんが、varを使用することでコードの可読性が上がることもあります。
今回紹介したケースを参考にしながら、この機会に、ぜひ活用してみてください。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。
C#新着案件New Job
-
システム開発/東京都新宿区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都新宿区(新宿駅) -
システム開発/東京都新宿区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都新宿区(新宿駅) -
デバック、テスト項目の作成/神奈川県横浜市/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円神奈川県横浜市(桜木町駅) -
デバック、テスト項目の作成/神奈川県横浜市/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円神奈川県横浜市(桜木町駅) -
基幹システム開発導入/東京都新宿区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都新宿区(西新宿駅) -
基幹システム開発導入/東京都新宿区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都新宿区(西新宿駅)