C# - 定数とリテラル:初心者ガイド

こんにちは、志を抱くプログラマーさんたち!今日は、C#における定数とリテラルの世界に飛び込みます。これらの用語が少し脅威のように聞こえるかもしれませんが、このチュートリアルの終わりまでに、プロのように使えるようになるでしょう!

C# - Constants

定数とリテラルとは?

詳細に進む前に、まず定数とリテラルとは何かを理解しましょう。定数は、一度設定した後は値を変更できない特別な変数と考えられます。一方、リテラルはコード内で使用する実際の値です。

実世界の類似

あなたが好きなマグカップを思い浮かべてください。そのマグカップ自体は定数のように、変わりません。朝마다注ぐコーヒーはリテラルのように、実際の値です。

では、C#におけるさまざまなリテラルを見ていきましょう!

整数リテラル

整数リテラルは、小数点のない整数です。C#では、さまざまな方法で表現できます。

10進数(基数10)リテラル

これは私たちが日常生活で使用する数字です。

int myAge = 25;
long worldPopulation = 7800000000;

この例では、257800000000は整数リテラルです。

16進数(基数16)リテラル

16進数は0xまたは0Xで始まります。

int hexValue = 0x1A; // 10進数の26に相当

ここで、0x1Aは16進数リテラルです。

2進数(基数2)リテラル

2進数は0bまたは0Bで始まります。

int binaryValue = 0b1010; // 10進数の10に相当

この場合、0b1010は2進数リテラルです。

浮動小数点リテラル

浮動小数点リテラルは、小数点を持つ数を表現します。

float pi = 3.14f;
double avogadroNumber = 6.022e23;
decimal bankBalance = 1234.56m;

これらの例では:

  • 3.14fはfloatリテラル('f'字尾に注意)
  • 6.022e23はdoubleリテラルの科学記数法
  • 1234.56mはdecimalリテラル('m'字尾に注意)

文字定数

文字定数は、単一のUnicode文字を表現し、単一引用符で囲まれます。

char grade = 'A';
char newline = '\n';

ここで、'A''\n'は文字定数です。'\n'は改行を表す特別なエスケープシーケンスです。

文字列リテラル

文字列リテラルは、二重引用符で囲まれた文字のシーケンスです。

string greeting = "Hello, World!";
string path = @"C:\Users\YourName\Documents";

これらの例では:

  • "Hello, World!"は通常の文字列リテラル
  • @"C:\Users\YourName\Documents"はバックスラッシュをリテラル文字として扱うverbatim文字列リテラル

複数行文字列リテラル

C# 11では、複数行文字列を書く新しい方法が導入されました。

string poem = """
Roses are red,
Violets are blue,
C# is awesome,
And so are you!
""";

これにより、複数行文字列の書き込みがより簡単で読みやすくなります!

定数の定義

リテラルをカバーしたので、次にC#で定数をどう定義するか話しましょう。

定数を定義するには、constキーワードを使用します:

public class MathConstants
{
public const double PI = 3.14159265359;
public const int DAYS_IN_WEEK = 7;
}

ここで、PIDAYS_IN_WEEKは定数です。一度定義した後、その値は変更できません。

定数の使用时机

以下の条件を満たす値を持つ場合に定数を使用します:

  1. コンパイル時に既知
  2. プログラムの実行中に変更されない
  3. コード内で複数回使用される

例えば、数学定数、設定値、またはアルゴリズム内のマジックナンバーは、定数として適しています。

一般的なC#定数の一覧

以下は、C#でよく使用される定数の一覧です:

定数名 説明
Math.PI 3.14159265358979323846 円の周囲長と直径の比
Math.E 2.7182818284590452354 自然対数の底
int.MaxValue 2,147,483,647 32ビット符号付き整数の最大値
int.MinValue -2,147,483,648 32ビット符号付き整数の最小値
double.PositiveInfinity 正の無限大を表す
double.NegativeInfinity -∞ 負の無限大を表す
string.Empty "" 空の文字列

結論

おめでとうございます!あなたはC#の定数とリテラルの世界への第一歩を踏み出しました。これらはあなたのプログラムの基本構築ブロックであり、それを理解することで、プログラミングの旅で成功するための基盤を築くことになります。

学びを続け、成長を続ける中で、ますますこれらの概念を使用することになるでしょう。実験を恐れず、最良の学び方は実践です!

codingを続け、好奇心を持ち続け、覚えておいてください:プログラミングの世界では、あなたが定数であり、あなたの知識は常に成長する変数です。ハッピーコーディング!

Credits: Image by storyset