C#, C♯, C#相談室 Part98

2024/06/29(土) 19:18:41.95ID:NohAfdfx0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512

■Visual Studio 2022 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/

■コードを貼る場合はこちら
http://ideone.com/

■前スレ
C#, C♯, C#相談室 Part97
https://mevius.5ch.net/test/read.cgi/tech/1671585518/

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2デフォルトの名無しさん (アウアウエー Sa82-viZ1)
垢版 |
2024/07/06(土) 09:45:55.57ID:tDR9EaCva
もう人居ないねここ
2024/07/07(日) 11:10:38.82ID:LxwuJOKK0
C#ってそんな廃れたのか、、、
2024/07/07(日) 13:30:41.60ID:nRN7u0+PM
星の手紙

スターレター
2024/07/19(金) 08:08:33.90ID:8mtfDqm5M
プロパティって、別クラスからprivateなフィールドにアクセスするためのメソッドという理解であってます?
自分のクラス内で完結するのであれば直接フィールドを操作すればいいですよね?
2024/07/19(金) 10:22:26.61ID:rAu+wfGe0
基本的にはそうだけどちょっとした小細工を仕込みたい場合とかにprivateプロパティという選択肢もなくはない
遅延初期化するものとかね(この用途では今はLazy<T>を使うけど)
2024/07/19(金) 10:35:14.12ID:IMeiXUMG0
フィールドのようにアクセス可能なクラスのインターフェースというかAPIを定義するのがプロパティ
中身は他のメソッド呼び出しの場合もあれば他のプロパティを元にした計算だけ行う場合もある

クラスのユーザーがフィールドにアクセスする必要がなく
継承して拡張する際にもフィールドにアクセスする必要がなく
クラス内からのフィールドアクセス時にも常にチェックすべき事前条件がなければ
privateフィールドを単純にラップするプロパティは基本的に不要
2024/07/19(金) 22:05:33.66ID:8mtfDqm5M
ありがとうございます
もう一点聞きたいんですが、プロパティ自体はアンチパターンではないですよね?
ある本にセッターを使うなら別にメソッド用意しろと書いてありました
理由はクラス外からメンバを操作してはいけないのと、値チェックができなくなるからと
これらは別にプロパティでもできるんで(そもそもプロパティはメソッド)、間違ってますよね?
2024/07/19(金) 23:31:48.25ID:QqZ5EOxb0
>>8
>ある本にセッターを使うなら別にメソッド用意しろと書いてありました
状況による
publicなセッターのほうが望ましいケースが稀なのは確か
2024/07/20(土) 16:52:32.64ID:euMlvBLf0
ぞもそもそれc#の本なのか?
なぜタイトルをぼかす
2024/07/22(月) 06:36:28.74ID:NgZAB9xM0
セッターゲッターとか久しぶりに聞いた気がする
2024/07/29(月) 14:46:58.61ID:AZP0hoR90
あれ?.NET CoreだとC++/CLIの1次元array使えない?
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況