C#で読み取り専用プロパティ(readonly)を追加する方法をわかりやすく解説
C#では、readonlyキーワードを使ってフィールドを読み取り専用にすることができます。readonlyが付いたフィールドは、オブジェクトの構築時に一度だけ値を設定でき、その後は変更することができません。変更しようとするとコンパイルエラーが発生します。
ここでは、C#で読み取り専用のフィールドやプロパティを扱う方法について、具体例を交えながら詳しく解説します。
readonlyフィールドの基本的な使い方
まずは、readonlyフィールドを持つクラスの例を見てみましょう。
class Employee {
readonly int salary;
Employee(int salary) {
this.salary = salary;
}
void UpdateSalary() {
//salary = 50000; // コンパイルエラーになる
}
}上記の例では、salaryフィールドをreadonlyとして宣言しています。コンストラクタ内で一度だけ値を代入できる一方、UpdateSalary()メソッド内で値を変更しようとすると、コンパイル時エラーが発生します。
readonlyの主な特徴
- 宣言時に初期化するか、コンストラクタ内で一度だけ代入できます
- それ以降の代入や変更はすべてコンパイルエラーになります
- 実行時ではなくコンパイル時に不変性が保証されるため、安全に設計できます
このように、一度設定したら変更されないべきデータ(社員番号、生年月日など)にはreadonlyを使用するのが適切です。
配列が読み取り専用かどうかを確認する方法
次に、配列が読み取り専用かどうかを判定する例を見てみましょう。ArrayクラスのIsReadOnlyプロパティを使用すると、配列が読み取り専用かどうかを簡単に確認できます。
サンプルコード
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace lower {
class Program {
static void Main(string[] args) {
Array arr = Array.CreateInstance(typeof(String), 3);
arr.SetValue("Maths", 0);
arr.SetValue("Science", 1);
arr.SetValue("PHP", 2);
Console.WriteLine("isReadOnly: {0}", arr.IsReadOnly.ToString());
}
}
}実行結果
isReadOnly: False
この例では、Array.CreateInstanceメソッドを使って文字列型の配列を作成し、3つの要素を設定しています。IsReadOnlyプロパティの結果が出力され、通常の配列であるため「False」が表示されます。
まとめ
- readonlyキーワードを使うと、フィールドを構築時に一度だけ設定可能な読み取り専用にできます
- 後から値を変更しようとするとコンパイルエラーになります
- 配列などのコレクションが読み取り専用かどうかはIsReadOnlyプロパティで確認できます
readonlyを活用することで、意図しないデータの変更を防ぎ、より堅牢で保守性の高いコードを書くことができます。
-
Outlookで署名を追加・設定する方法【Windows/Mac/スマホ/Web版対応】
洗練された署名は、メールに個性を添えてくれます。特にビジネスシーンでは、適切なメール署名があることで、相手によりプロフェッショナルな印象を与えられます。Outlookでは、好みの署名を簡単に追加でき、必要に応じて自由に編集することも可能です。この記事では、Windows版、Mac版、モバイル版、Web版のOutlookで署名を追加する方法を、それぞれ詳しく解説します。 Outlook Web版で署名を追加する方法 1. Outlook Web版にログインすると、画面上部に小さな設定アイコンが表示されます。「設定」→「メール」→「作成と返信」から、署名セクションにアクセスできます。 または
-
アバスト(Avast)に例外を追加する方法!ファイル・URLの除外設定手順を解説
Avast Software(アバスト)はチェコ共和国に本社を置く多国籍サイバーセキュリティ企業です。同社が提供する「Avast Antivirus(アバスト アンチウイルス)」は、世界で最も人気のあるコンピュータセキュリティソフトの一つであり、4億3,500万人以上のユーザーに利用されています。マルウェア対策ソフトの中でも、アバストは最大の市場シェアを誇っています。アバストはウイルスやマルウェアの検出に非常に優れたソフトウェアですが、場合によっては無害なアプリケーションやファイルまで誤って検知してしまうことがあります。そこで本記事では、特定のアプリケーションやファイルを「例外」として登録し、