C#の定数の定義方法を完全解説!初心者でもわかる変更されない変数の使い方と命名ルール
生徒
「C#で、絶対に変わらない数字とか文字を変数として使いたいんですが、どうすればいいんですか?」
先生
「そのような場合は、定数(ていすう)というものを使うと便利ですよ。」
生徒
「定数ってなんですか?普通の変数と何が違うんですか?」
先生
「とても良い疑問ですね。それではC#での定数の定義方法と、使い方について基本からしっかり解説していきましょう!」
1. 定数とは?変わらない値のこと!
まず、定数(ていすう)とは「変わらない値」のことです。プログラムの中で、一度決めたら二度と変えてはいけない値を扱うときに使います。たとえば、「円周率(3.14)」や「1年間の日数(365)」などは、途中で変更されることがないので、定数として扱うのが適切です。
一方で、変数(へんすう)は途中で値を変えることができる入れ物です。
2. C#で定数を定義する書き方
C#では、定数を定義するときにconst(コンスト)というキーワードを使います。このキーワードは「この変数は絶対に変わらないですよ」とコンピュータに伝えるための特別な言葉です。
定数を定義する基本の書き方はこちらです。
const データ型 定数名 = 値;
では、具体的な例を見てみましょう。
const double PI = 3.14;
const int DAYS_IN_YEAR = 365;
このように、定数を使うとプログラムが読みやすくなり、誤って値を変更するミスも防げます。
3. 定数の命名ルールと書き方のポイント
定数の名前には、いくつかの命名ルール(めいめいルール)があります。これを守ることで、チーム開発や大きなプログラムでも分かりやすくなります。
- すべて大文字で書く
- 単語の区切りにはアンダースコア(_)を使う
たとえば、DAYS_IN_YEAR(1年の日数)やMAX_SPEED(最大速度)などが良い例です。
4. なぜ定数を使うの?初心者でもわかる3つの理由
定数を使う理由は、大きくわけて次の3つがあります。
- 値の意味がわかりやすくなる
数字や文字だけが書かれていると意味が伝わりにくいですが、定数名を使うとその意味がひと目でわかります。 - 値の使い回しができる
同じ値を何度も使う場合、定数にしておけば一括で管理できます。 - うっかりミスを防げる
定数は変更できないので、間違えて上書きしてしまうリスクがなくなります。
5. 定数の使用例を見てみよう!
では、定数を実際のプログラムでどう使うのかを見てみましょう。
using System;
class Program
{
const double TAX_RATE = 0.1; // 消費税率10%
const int BASE_PRICE = 1000; // 商品の基本価格
static void Main()
{
double tax = BASE_PRICE * TAX_RATE;
double totalPrice = BASE_PRICE + tax;
Console.WriteLine("消費税: " + tax + "円");
Console.WriteLine("合計金額: " + totalPrice + "円");
}
}
このプログラムでは、TAX_RATEとBASE_PRICEという2つの定数を使っています。これらは絶対に変えてはいけない値として定義されており、どこで使っても同じ値になります。
消費税: 100円
合計金額: 1100円
6. 定数の注意点と間違いやすいポイント
定数を使うときには、次のような注意点があります。
- 定数には最初から値を入れておく必要がある(あとで変更できない)
- 実行中に計算して決まるような値は定数にできない
たとえば、ユーザーが入力した値や、現在の時刻などは定数として使えません。なぜなら、プログラムが動くたびに値が変わるからです。
7. constとreadonlyの違いにも注目!
少しだけ発展的な話になりますが、C#にはreadonlyという「読み取り専用」の変数もあります。
constはコンパイル時(プログラムを作るとき)に値が決まりますが、readonlyは実行時(プログラムが動いているとき)に値を決めることができます。
初心者のうちは、まずはconstだけを使って「変わらない値」をしっかり覚えることから始めるのが良いでしょう。
8. よく使われる定数の例一覧
最後に、日常的によく使われる定数の例をいくつか紹介します。
PI = 3.14159(円周率)MAX_USERS = 100(最大ユーザー数)APP_VERSION = "1.0.0"(アプリのバージョン)DEFAULT_FONT_SIZE = 14(初期の文字サイズ)
こうした定数をプログラムに取り入れると、保守性(ほしゅせい:あとから修正しやすくすること)が高まり、読みやすくて安全なコードになります。
まとめ
C#で定数を扱うという考え方は、初心者にとってとても大切な基礎になります。変わらない値を扱うときに、ふつうの変数を使ってしまうと、うっかり別の場所で書き換えてしまったり、後から読み返したときに「なぜこの値なのか」が分かりづらくなることがあります。そこで、定数という仕組みを使うことで、プログラム全体の正確さや分かりやすさを保つことができます。定数は「必ず変わらない値」を表現するための仕組みなので、プログラムのどこで参照しても同じ値で動き、間違えて代入しようとしても禁止されているため、安全性の高いコードを書くことができます。
また、定数を使うと、数字だけが書かれているコードに比べて、読み手が内容を想像しやすくなります。ただ「1000」と書かれているより、「基本価格」を意味するBASE_PRICEという名前になっている方が、何を表している値なのかがはっきり分かります。このように、プログラムでは「意味が伝わる名前」がとても重要です。特に、複数人でプログラムを作る場面や、半年後に自分が見直す場面では、名前の違いが大きな差になります。
定数の命名ルールとして、C#ではすべて大文字で書き、単語の区切りにアンダースコアを使うスタイルが広く知られています。これは視覚的に判断しやすく、読み間違いも防げるため、多くのプロジェクトで採用されています。たとえば、MAX_USERSやPI、APP_VERSIONなどはとても分かりやすく、保守性も高い書き方になります。
さらに、定数がどれだけ便利かは、実際にコードを書いてみると実感しやすいです。次のコードでは、消費税率と商品の基本価格を定数として扱い、計算結果を表示しています。もし税率を変えたい場合でも、定数の値をひとつ書き換えるだけで、同じ定数を使っているすべての計算が変更されます。この手軽さとミスの少なさは、小さなプログラムだけでなく、大規模なシステムでも役立ちます。
定数を用いたサンプルプログラム
using System;
class Program
{
const double TAX_RATE = 0.08;
const int BASE_PRICE = 1500;
const string UNIT = "円";
static void Main()
{
double tax = BASE_PRICE * TAX_RATE;
double total = BASE_PRICE + tax;
Console.WriteLine("税額は " + tax + UNIT + " です。");
Console.WriteLine("合計金額は " + total + UNIT + " です。");
}
}
このように、定数の使用は値の管理を簡単にし、プログラム全体の可読性や信頼性を大きく高めます。定数にしておけば、意図しない変更ができなくなるため、上書きによる不具合を防ぎます。また、複数の場所で使う値がひとつにまとまるため、後からの変更やバージョンアップにも強い構成になります。
定数とreadonlyの違いを改めて整理しよう
最後に、constとreadonlyの違いについて触れておきます。どちらも変更できない値を扱いますが、constはプログラムを作る時点で決まった値であるのに対し、readonlyはプログラムの実行中に決まる値も扱えるという違いがあります。初心者のうちは、まずconstから覚えれば十分です。慣れてきたら、readonlyの使いどころも自然と分かるようになります。
よく使われる定数の具体例
よく使われる例として、円周率を表すPIや、アプリケーションのバージョンを表すAPP_VERSIONなどがあります。ゲームであれば最大人数を表すMAX_PLAYER、オンラインサービスであれば最大接続数を表すMAX_CONNECTIONSなども定数としてよく利用されます。こうした書き方は、プログラムを読む人にとって親切で、気づかないうちにミスを防いでくれます。
プログラミングでは、「値が変わらない」ということを表現できると、それだけで安心してコードが書けるようになります。今回学んだ定数を活用し、数字や文字列をそのまま書くのではなく、意味を表す名前を付けることで、理解しやすく信頼できるコードを書けるようになります。
生徒
「先生、定数を使うとプログラムが読みやすくなる理由がよく分かりました!」
先生
「そうですね。読み手に意味が伝わるようになると、プログラムの質がぐっと上がりますよ。」
生徒
「たとえば、数字をそのまま書くより、BASE_PRICEみたいな定数を使う方が親切なんですね。」
先生
「そのとおりです。しかも間違えて書き換えることもできないので安全です。」
生徒
「readonlyとconstの違いも分かりました。最初は定数だけ覚えればよさそうですね。」
先生
「ええ、まずはconstを使って、変わらない値を明確に書く習慣を身につけましょう。」