前提・実現したいこと
はじめまして。
c#で、あるクラスを作成しているのですが、
プロパティの扱いに関して質問があります。
プロパティは一般には、クラス内のメンバ変数に外からアクセスするときの
インターフェース的なもので、クラス内部のコードでは対応するメンバ変数を
使うという理解なのですが、クラス内部でそのままプロパティをメンバ変数のように
使用するのは良くないのでしょうか。
該当のソースコード
例えば、あるクラスの中身が以下のようだとして、
クラス内で、プロパティ"Name"をそのまま使っていますが、
何か問題あるのでしょうか。
csharp
1private string _name; 2public string Name 3{ 4 get { return this._name; } 5 set { this._name = value; } 6} 7 8private string Hogehoge() 9{ 10 Name = "yamada"; // this._name = "yamada";のほうが適切? 11 var xxx = Name; // var xxx = this._name;のほうが適切? 12 13 return xxx; 14} 15
またそもそも、特にアクセスレベルの制限などする必要のないような場合、
以下のように、メンバ変数を省略するというのはありでしょうか。
(この場合、単にメンバ変数pulic string Name;
を使うのとほぼ同じ・・・?)
csharp
1public string Name { get; set; } 2 3private string Hogehoge() 4{ 5 Name = "yamada"; 6 var xxx = Name; 7 8 return xxx; 9} 10
よろしくお願いいたします。
> プロパティは一般には、クラス内のメンバ変数に外からアクセスするときのインターフェース的なもので、クラス内部のコードでは対応するメンバ変数を使うという理解なのですが、
オブジェクト指向プログラミングの「カプセル化」という考えに沿って、フィールドは private それに外部からアクセスする必要がある場合はパブリックプロパティを使うという基本で良いと思いますよ。
回答2件
あなたの回答
tips
プレビュー