C#でローカル変数をfinalにする方法|readonlyキーワードの使い方
Javaにあるfinalキーワードのような「変更不可」なローカル変数を作りたい場合、C#ではfinalキーワードが存在しないため、代わりにreadonlyキーワードを使用します。
readonlyキーワードとは
readonly(読み取り専用)を付けた変数には、値を一度だけ代入することができます。
readonlyとして宣言されたフィールドは、オブジェクトの構築時(コンストラクタ内)にのみ値を設定でき、それ以降は変更することができません。この仕組みにより、意図しない値の書き換えを防ぎ、プログラムの安全性と保守性を高めることができます。
サンプルコード
以下の例では、DepartmentクラスのempCountフィールドをreadonlyとして宣言しています。一度値が代入されると、その後は変更できません。
class Department {
readonly int empCount;
public Department(int empCount) {
this.empCount = empCount; // 構築時にのみ代入可能
}
void ChangeCount() {
// empCount = 150; // コンパイルエラーになる
}
}
ポイントまとめ
- C#に
finalキーワードはないため、readonlyを使用する readonlyフィールドへの代入は、宣言時またはコンストラクタ内でのみ可能- コンストラクタ以外の場所で再代入しようとすると、コンパイルエラーが発生する
- 定数のように扱いたい場合は
constも選択肢だが、実行時に値を決めたい場合はreadonlyが適している
-
Dockerを使ってローカル環境にKibanaインスタンスを構築する手順
本記事では、リモートのElasticsearchクラスタに接続するローカルKibanaインスタンスの構築手順を、ステップごとにわかりやすく解説します。ObjectRocket for Elasticsearchには無料のホスト型Kibanaが付属していますが、ローカルマシン上でKibanaを実行することで、より柔軟な運用が可能になります。また、ホスト型Kibanaを提供していない環境やサービスを利用している場合でも、このガイドに沿って進めれば、自分のマシン上で簡単にKibanaを動かせるようになります。なぜローカルでKibanaを動かすのか?他のKibanaユーザーと共有したくない独自のビジュ
-
Windows 10 で環境変数を設定・編集する方法を初心者向けに解説
環境変数とは、PC上で動作するプログラムの設定に使われるグローバルな値のことです。名前だけ聞くと難しく感じられますが、実際には「さまざまなアプリが共通して参照できる設定情報の保管場所」と考えると分かりやすいでしょう。 環境変数にはユーザーごとに紐づくものがあり、ユーザーアカウントが異なれば設定内容も変わります。その一方で、「%windir%」のようなシステム全体で共通の変数も存在します。たとえば「%windir%」は、Windowsがインストールされているディレクトリ(例:「C:\Windows」)を常に指します。アプリ側ではこの値を直接ハードコードせず、「%windir%」を参照することでW