C#の変数:型、ストレージ、使い方を完全ガイド
変数とは、プログラムが操作できるストレージ領域に付けられた名前のことです。C#の各変数には特定の型があり、その型によって変数のメモリのサイズとレイアウト、そのメモリに格納できる値の範囲、変数に適用できる演算のセットが決まります。
基本的な値の型
C#で提供される基本的な値型は以下のカテゴリに分類されます。
| 型 | 例 |
|---|---|
| 整数型 | sbyte, byte, short, ushort, int, uint, long, ulong, char |
| 浮動小数点型 | float, double |
| 10進数型 | decimal |
| ブール型 | true, false |
| ヌル許容型 | Nullable<T> |
また、C#ではenum(列挙型)や、class(参照型)などの他の値型も定義できます。これらは後の章で説明します。
変数の定義
C#での変数定義の構文は以下の通りです。
<data_type> <variable_list>;
ここで、data_typeはchar, int, float, doubleなどの有効なC#データ型、またはユーザー定義型でなければなりません。variable_listは、カンマで区切られた1つ以上の識別子名で構成されます。
有効な変数定義の例
int i, j, k;
char c, ch;
float f, salary;
double d;
変数の初期化
変数は、イコール記号に続いて定数式を指定することで初期化(値を割り当て)します。初期化の一般的な形式は以下の通りです。
variable_name = value;
変数は宣言時に初期化できます。初期化子は、イコール記号に続く定数式で構成されます。
<data_type> <variable_name> = value;
初期化の例
int d = 3, f = 5; // dとfを初期化
byte z = 22; // zを初期化
double pi = 3.14159; // πの近似値を宣言
char x = 'x'; // 変数xに'x'を代入
変数を適切に初期化することは良いプログラミング習慣です。初期化しないと、プログラムが予期しない結果を生むことがあります。
様々な型の変数を使用する例
using System;
namespace VariableDefinition {
class Program {
static void Main(string[] args) {
short a;
int b;
double c;
// 実際の初期化
a = 10;
b = 20;
c = a + b;
Console.WriteLine("a = {0}, b = {1}, c = {2}", a, b, c);
Console.ReadLine();
}
}
}
実行結果:
a = 10, b = 20, c = 30
ユーザーからの値の受け取り
System名前空間のConsoleクラスには、ユーザーからの入力を受け取って変数に格納するReadLine()メソッドがあります。
int num;
num = Convert.ToInt32(Console.ReadLine());
Convert.ToInt32()は、ユーザーが入力したデータをint型に変換します。これはConsole.ReadLine()がデータを文字列形式で受け取るためです。
C#におけるLvalueとRvalue
C#には2種類の式があります。
- lvalue(左辺値) - 代入の左辺または右辺のいずれかに現れる式
- rvalue(右辺値) - 代入の右辺にのみ現れ、左辺には現れない式
変数はlvalueなので、代入の左辺に置けます。数値リテラルはrvalueなので、代入することはできず、左辺に置くことはできません。
// 有効な文
int g = 20;
// 無効な文(コンパイルエラー)
10 = 20;
ベストプラクティス
- 変数は使用前に必ず初期化する
- 用途に応じた適切な型を選択する(整数ならint、金額ならdecimalなど)
- スコープを最小限に抑え、必要な場所でのみ変数を宣言する
- 意味のある変数名を付ける(
xよりuserAgeなど)
C言語
- 電気スイッチの理解:タイプ、機能、応用
- 建設・製造における4大鋼種の理解:炭素鋼・ステンレス・合金鋼・工具鋼
- C# 変数とプリミティブデータ型:完全マスターガイド
- C言語のデータ型完全ガイド:整数、浮動小数点、void型
- C言語の変数を理解する:型、命名規則、メモリ管理
- C言語のスコープルール:ローカル、グローバル、仮パラメータの理解
- C#データ型完全ガイド:値型、参照型、ポインタ型
- MATLAB変数の理解:基礎から実例まで徹底解説
- MATLABデータ型完全ガイド:15種類の基本型と変換・判定関数
- Python データ型マスター: 実践ガイド
- Java変数の種類:ローカル、インスタンス、クラス変数を徹底解説