見出し画像

読み込み専用 書き込み専用の変数の作り方

C# プロパティの活用: 書き込み専用と読み込み専用の設定方法

通常のプログラムでは、変数を作れば、その変数は読み込んだり書き込んだりできるのはご存知の通り。
しかし、予想しないところで読み書きされると、予期しない結果を招く場合もある。
それを防止するために、C#では読み込み専用・書き込み専用の処理を創ることができる。

C#でプロパティを使用することは、データのカプセル化とコードの可読性を高めるために非常に重要です。プロパティを適切に活用することで、クラスのインターフェースを明確にし、外部からの不正なアクセスを防ぐことができます。本記事では、C#でプロパティを読み取り専用または書き込み専用にする方法について解説します。

プロパティの基本
まず、C#でプロパティを作成する基本的な方法を振り返りましょう。プロパティは、クラス内のフィールドにアクセスするためのメソッドのようなものです。以下のように、getとsetアクセサを使用して定義します。

クラスの中でnameの変数を定義しました。
private string name;

public string Name
{
   get { return name; }  クラスの外から読み込みできる
   set { name = value; }  クラスの外から書き込みできる
}
上記の例では、Nameプロパティがあります。このプロパティによって、nameフィールドの読み取りと書き込みが可能になります。

書き込み専用プロパティの設定
時には、特定のフィールドを外部からの書き込み専用にしたい場合があります。そのような場合、プロパティのsetアクセサを削除することで実現できます。

private string name;

public string Name
{
   get { return name; }  この場合は読み込みしかできない
}

上記の例では、Nameプロパティは読み取り専用になります。外部からの値の設定はできませんが、プロパティの値を読み取ることはできます。

読み取り専用プロパティの設定
逆に、特定のフィールドを外部からの読み取り専用にしたい場合もあります。その場合は、プロパティのgetアクセサを削除します。

private string name;

public string Name
{
   set { name = value; }  この場合は書き込みしかできない
}
上記の例では、Nameプロパティは書き込み専用になります。外部からの値の取得はできませんが、プロパティに値を設定することはできます。


C#のプロパティを読み取り専用または書き込み専用にする方法を解説しました。
プロパティを適切に使用することで、クラスのデータをより安全に取り扱うことができます。


いいなと思ったら応援しよう!