C# 変数と (プリミティブ) データ型
C# 変数と (プリミティブ) データ型
このチュートリアルでは、変数、C# で変数を作成する方法、および C# プログラミング言語がサポートするさまざまなデータ型について学習します。
変数は、メモリ位置に付けられた記号名です。変数は、コンピューター プログラムにデータを格納するために使用されます。
C# で変数を宣言する方法
C# で変数を宣言する例を次に示します。
int age;
この例では、変数 age タイプ int
の (integer) が宣言されており、整数値のみを格納できます。
次のように、プログラムの後半で変数に値を割り当てることができます。
int age; ... ... ... age = 24;
ただし、変数は宣言中に何らかの値に初期化することもできます。たとえば、
int age = 24;
ここで、変数 age タイプ int
の 宣言され、24
に初期化されます
これは変数なので、変数の値も変更できます。たとえば、
int age = 24; age = 35;
ここで、age の値は が 24 から 35 に変更されました。
C# の変数は、使用する前に宣言する必要があります。つまり、変数に値を割り当てる前に、変数の名前と型がわかっている必要があります。これが、C# が静的型付け言語と呼ばれる理由です。
一度宣言すると、変数のデータ型はスコープ内で変更できません。スコープは、変数が表示または使用できるコードのブロックと考えることができます。前の説明が理解できなくても、後の章でスコープについて学習しますので心配しないでください。
今のところ、C# では次のことはできないことを覚えておいてください:
int age; age = 24; ... ... ... float age;
暗黙的に型指定された変数
別の方法として、C# では、var
を使用して型を知らなくても変数を宣言できます。 キーワード。このような変数は、暗黙的に型指定されたローカル変数と呼ばれます .
var
を使用して宣言された変数 キーワードは宣言時に初期化する必要があります。
var value = 5;
コンパイラは、変数に割り当てられた値から変数の型を判断します。上記の例では、値 タイプは int
です .これは次と同等です:
int value; value = 5;
暗黙的に型指定されたローカル変数について詳しく知ることができます。
C# での変数の命名規則
変数に名前を付ける際に従う必要がある特定の規則があります。 C# での変数の命名規則は次のとおりです。
<オール>変数名 | 備考 |
---|---|
名前 | 有効 |
subject101 | 有効 |
_age | 有効 (プライベート メンバー変数の命名のベスト プラクティス) |
@break | 有効 (名前が予約済みキーワードの場合に使用) |
101subject | 無効 (数字で始まる) |
あなたの名前 | 有効 |
あなたの名前 | 無効 (空白を含む) |
if
、 for
、 using
変数名にすることはできません。 C# キーワードについては、次のチュートリアルで詳しく説明します。変数に名前を付けるためのベスト プラクティス
<オール>C# の命名規則の詳細については、こちらをご覧ください。
パブリック メンバー変数とプライベート メンバー変数について心配する必要はありません。それらについては後の章で学びます。
C# プリミティブ データ型
C# の変数は、大きく 2 つのタイプに分類されます:値のタイプ および 参照タイプ .このチュートリアルでは、値型のサブクラスであるプリミティブ (単純) データ型について説明します。
参照型については、後のチュートリアルで説明します。ただし、変数の型について詳しく知りたい場合は、C# の型と変数 (公式の C# ドキュメント) にアクセスしてください。
ブール値 (ブール)
- ブール型のデータ型には、次の 2 つの値があります:
true
またはfalse
- デフォルト値 :
false
- ブール変数は、通常、if ステートメント などで条件をチェックするために使用されます。 、ループ など
例:
using System;
namespace DataType
{
class BooleanExample
{
public static void Main(string[] args)
{
bool isValid = true;
Console.WriteLine(isValid);
}
}
}
プログラムを実行すると、出力は次のようになります:
True
符号付き積分
これらのデータ型は、整数値 (正と負の両方) を保持します。利用可能な全ビットのうち、1 ビットが符号に使用されます。
<強い>1.バイト
- サイズ :8ビット
- 範囲 :-128 ~ 127。
- デフォルト値 :0
例:
using System;
namespace DataType
{
class SByteExample
{
public static void Main(string[] args)
{
sbyte level = 23;
Console.WriteLine(level);
}
}
}
プログラムを実行すると、出力は次のようになります:
23
範囲外の値、つまり -128 未満または 127 より大きい値を割り当ててみて、何が起こるかを確認してください。
<強い>2.短い
- サイズ :16 ビット
- 範囲 :-32,768 ~ 32,767
- デフォルト値 :0
例:
using System;
namespace DataType
{
class ShortExample
{
public static void Main(string[] args)
{
short value = -1109;
Console.WriteLine(value);
}
}
}
プログラムを実行すると、出力は次のようになります:
-1109
<強い>3.整数
- サイズ :32 ビット
- 範囲 :-231 から 231-1
- デフォルト値 :0
例:
using System;
namespace DataType
{
class IntExample
{
public static void Main(string[] args)
{
int score = 51092;
Console.WriteLine(score);
}
}
}
プログラムを実行すると、出力は次のようになります:
51092
<強い>4.長い
- サイズ :64 ビット
- 範囲 :-263 から 263-1
- デフォルト値 :
0L
[末尾のLは値がlong型であることを表す]
例:
using System;
namespace DataType
{
class LongExample
{
public static void Main(string[] args)
{
long range = -7091821871L;
Console.WriteLine(range);
}
}
}
プログラムを実行すると、出力は次のようになります:
-7091821871
符号なし積分
これらのデータ型は、0 以上の値のみを保持します。通常、これらのデータ型を使用して、負の値がないと確信できる場合に値を格納します。
<強い>1.バイト
- サイズ :8ビット
- 範囲 :0 から 255。
- デフォルト値 :0
例:
using System;
namespace DataType
{
class ByteExample
{
public static void Main(string[] args)
{
byte age = 62;
Console.WriteLine(level);
}
}
}
プログラムを実行すると、出力は次のようになります:
62
<強い>2. ushort
- サイズ :16 ビット
- 範囲 :0 ~ 65,535
- デフォルト値 :0
例:
using System;
namespace DataType
{
class UShortExample
{
public static void Main(string[] args)
{
ushort value = 42019;
Console.WriteLine(value);
}
}
}
プログラムを実行すると、出力は次のようになります:
42019
<強い>3.単位
- サイズ :32 ビット
- 範囲 :0 ~ 232-1
- デフォルト値 :0
例:
using System;
namespace DataType
{
class UIntExample
{
public static void Main(string[] args)
{
uint totalScore = 1151092;
Console.WriteLine(totalScore);
}
}
}
プログラムを実行すると、出力は次のようになります:
1151092
<強い>4.ずっと
- サイズ :64 ビット
- 範囲 :0 ~ 264-1
- デフォルト値 :0
例:
using System;
namespace DataType
{
class ULongExample
{
public static void Main(string[] args)
{
ulong range = 17091821871L;
Console.WriteLine(range);
}
}
}
プログラムを実行すると、出力は次のようになります:
17091821871
浮動小数点
これらのデータ型は、浮動小数点値、つまり 10 進数値を含む数値を保持します。たとえば、12.36、-92.17 などです。
<強い>1.フロート
- 単精度浮動小数点型
- サイズ :32 ビット
- 範囲 :1.5 × 10−45 ~ 3.4 × 1038
- デフォルト値 :0.0F [末尾のFは値がfloat型であることを表す]
例:
using System;
namespace DataType
{
class FloatExample
{
public static void Main(string[] args)
{
float number = 43.27F;
Console.WriteLine(number);
}
}
}
プログラムを実行すると、出力は次のようになります:
43.27
<強い>2.ダブル
- 倍精度浮動小数点型。単精度浮動小数点と倍精度浮動小数点の違いは何ですか?
- サイズ :64 ビット
- 範囲 :5.0 × 10−324 ~ 1.7 × 10308
- デフォルト値 :0.0D [末尾のDは値がdouble型であることを表す]
例:
using System;
namespace DataType
{
class DoubleExample
{
public static void Main(string[] args)
{
double value = -11092.53D;
Console.WriteLine(value);
}
}
}
プログラムを実行すると、出力は次のようになります:
-11092.53
文字 (char)
- 16 ビットの Unicode 文字を表します。
- サイズ :16 ビット
- デフォルト値 :'\0'
- 範囲 :U+0000 ('\u0000') から U+FFFF ('\uffff')
例:
using System;
namespace DataType
{
class CharExample
{
public static void Main(string[] args)
{
char ch1 ='\u0042';
char ch2 = 'x';
Console.WriteLine(ch1);
Console.WriteLine(ch2);
}
}
}
プログラムを実行すると、出力は次のようになります:
B x
'B'
のユニコード値 '\u0042'
です 、したがって ch1 を印刷します 'B'
を出力します .
10 進数
- Decimal 型は、浮動小数点型 (double および float) に比べて精度が高く、範囲が狭いです。そのため、金銭の計算に適しています。
- サイズ :128 ビット
- デフォルト値 :0.0M [末尾の M は値が 10 進数であることを表します]
- 範囲 :(-7.9 x 1028 から 7.9 x 1028) / (100 から 28)
例:
using System;
namespace DataType
{
class DecimalExample
{
public static void Main(string[] args)
{
decimal bankBalance = 53005.25M;
Console.WriteLine(bankBalance);
}
}
}
プログラムを実行すると、出力は次のようになります:
53005.25
サフィックス M
または m
最後に追加する必要があります。そうしないと、値が double として扱われ、エラーが生成されます。
C# リテラル
次のステートメントを見てみましょう:
int number = 41;
ここで、
int
はデータ型です- 番号 は変数であり、
41
リテラルです
リテラルは、プログラムに表示される固定値です。それらは計算を必要としません。例:5
、 false
、 'w'
計算なしで直接プログラムに現れるリテラルです。
ブール値リテラル
- true と false は、使用可能なブール値リテラルです。
- ブール変数の初期化に使用されます。
例:
bool isValid = true; bool isPresent = false;
整数リテラル
- 整数リテラルは、整数データ型の変数を初期化するために使用されます。つまり、
sbyte
、short
、int
、long
、byte
、ushort
、uint
とulong
. - 整数リテラルが
L
で終わる場合 またはl
、それは long 型です。ベスト プラクティスとしてL
を使用します (l
ではありません )。long value1 = 4200910L; long value2 = -10928190L;
- 整数リテラルが
0x
で始まる場合 、16 進数値を表します。プレフィックスのない数値は 10 進数として扱われます。 C# では、8 進表現と 2 進表現は許可されていません。int decimalValue = 25; int hexValue = 0x11c;// decimal value 284
浮動小数点リテラル
- 浮動小数点リテラルは、float および double データ型の変数を初期化するために使用されます。
- 浮動小数点リテラルがサフィックス
f
で終わる場合 またはF
、フロート型です。同様に、d
で終わる場合 またはD
、それは double 型です。どちらの接尾辞も存在しない場合、デフォルトで double 型になります . - これらのリテラルには、科学表記法で表現される場合、e または E が含まれます。
double number = 24.67;// double by default float value = -12.29F; double scientificNotation = 6.21e2;// equivalent to 6.21 x 102 i.e. 621
文字と文字列リテラル
- 文字リテラルは、char データ型の変数を初期化するために使用されます。
- 文字リテラルは一重引用符で囲みます。例:
'x'
,'p'
など - 文字、16 進数のエスケープ シーケンス、Unicode 表現、または char にキャストされた整数値として表すことができます。
char ch1 = 'R';// character char ch2 = '\x0072';// hexadecimal char ch3 = '\u0059';// unicode char ch4 = (char)107;// casted from integer
- 文字列リテラルは、文字リテラルのコレクションです。
- 二重引用符で囲みます。例:
「こんにちは」
,
「かんたんプログラミング」
など
string firstName = "Richard"; string lastName = " Feynman";
- C# は、次のようなエスケープ シーケンス文字もサポートしています。
スレッド>キャラクター 意味 \'
一重引用符 \"
二重引用符 \\
バックスラッシュ \n
改行 \r
キャリッジ リターン \t
水平タブ \a
アラート \b
バックスペース
C言語