12/01/27 00:01:49.60
プロパティの方があとからロジック足せていい。
設計に変更が一切ないって言いきれるなら差はないかも。
11:デフォルトの名無しさん
12/01/27 00:23:50.55
public Hoge Hoge{get;private set;}が便利
12:デフォルトの名無しさん
12/01/27 01:25:39.41
最近、そればっかり使うな。
13:デフォルトの名無しさん
12/01/27 04:00:39.70
簡単なプロパティって JIT でインラインしてもらえるのかな。
自動実装プロパティとかインラインして欲しいんだが。
14:デフォルトの名無しさん
12/01/27 04:35:54.96
自動実装プロバティーは初期化できないのが難点だな
例えば hoge{get;set; default=1;} なら良いんだが
後、イベントはフィールドで実装することが多いかも
プロバティー使うのはカスケードさせる時くらい
15:デフォルトの名無しさん
12/01/27 09:18:33.32
>>11
多分これがプロパティの一番の利用方法だろうな
LengthとかアクセスするのにLength()とは書きたくない
でもpublic変数にはしたくない(代入できてしまうから)
16:デフォルトの名無しさん
12/01/27 09:58:39.31
プロパティとして操作させたいけれどsetterしか呼ばれない、って場面ない?
void SetHoge( Hoge h ){}
みたいにするか、それとも
Hoge Hoge{ set; }
にするか、もったいないけど
Hoge Hoge{ get;set; }
にするか
どれがいい?
17:デフォルトの名無しさん
12/01/27 10:13:51.45
素直に関数使えよ
18:デフォルトの名無しさん
12/01/27 10:15:10.91
俺が3番といったら、3番にしてくれるんだろうな?
19:デフォルトの名無しさん
12/01/27 10:49:12.98
>>16
2番目はガイドライン違反
20:デフォルトの名無しさん
12/01/27 11:01:46.02
プロパティセットするとかだけなら
public static Hoge CreateHoge(引数)
みたいにする時もあるかなぁ
21:デフォルトの名無しさん
12/01/27 12:20:10.20
ガイドラインなんか守っている会社あるの?
22:デフォルトの名無しさん
12/01/27 12:21:18.69
いや、普通は可能な限り守るだろ
23:デフォルトの名無しさん
12/01/27 18:46:40.57
フィールドの代替だからねえ
フィールドを書き込み専用にしたいと思ったことはないだろう?
24:デフォルトの名無しさん
12/01/27 22:05:44.03
>>23
javaのSetter Getterの進化版だと思っていたが
ただ、readonlyは割と便利だが、writeonlyにしても何の役にも立たないよな
25:デフォルトの名無しさん
12/01/27 22:17:13.54
プロパティは「オブジェクトの属性」を表すセマンティクスなんだから、書き込み専用って言うのは自己矛盾に近い
26:デフォルトの名無しさん
12/01/27 23:04:03.40
意味がないとは言え、イベントの自動実装がないのは気持ち悪いな
27:デフォルトの名無しさん
12/01/27 23:09:55.83
あるよ。普通のフィールド形式のイベントがまさにイベントの自動実装。
addとremoveとバッキングフィールドが自動生成される。
28:デフォルトの名無しさん
12/01/28 00:58:13.75
プロパティ設定の構文
obj.prop = xx
でメソッドを駆動するためにwriteonly propertyにしてる市販ライブラリがあったなあ
Form.BackColor = Red
みたいな
29:デフォルトの名無しさん
12/01/28 01:16:58.70
VB6の時代のCOMコンポーネントは、それどう考えてもメソッドだろっていうのが
プロパティーになってることがよくあったなあ。
ところでsetterのみのプロパティーって、何か適用できる場面があって2,3度使った
記憶があるんだが、どういう場合だったか思い出せないな。
30:デフォルトの名無しさん
12/01/28 07:30:30.60
目的: fxCopに使ってない呼び出しは削除せよと怒られないようにするため