myugaruの色々構想中・・・!

「C#」「画像処理」「XNA未対応PCでゲームIDE作りの無謀な野望」

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  98  : 記事  0  : コメント  1171  : トラックバック  59

ニュース

myugaru
仕事(昔)=ヲタク系プログラマー~マスコミ系サポートデスク
仕事(今)=電子機器系サービス業
趣味a=パズルゲーム全般、シューティングは主に見学
趣味b=画像処理関係の勉強
趣味c=プログラミング言語の勉強
趣味d=アキバ系ヲタク
趣味e=芸能アイドル系ヲタク
d,e色の強いもう一つのブログ
最新目標=シューティングゲームを作る

わんくまりんく

わんくま同盟blog C#,VB.NET掲示板

ぶろぐつーる

あわせて読みたい

はてなりんぐ

書庫

日記カテゴリ

ギャラリ

お友達

リンク

[C#]自動プロパティの必要性

ちょっと私の知識不足が補われたところなので忘れないように整理します。

1.バイナリ互換主張派vsソース互換主張派

アセンブリ分割を考慮するとフィールド公開されたものを後からプロパティ公開に変えることができない、ということですね。

(追:プロパティを期待するリフレクションがフィールドを期待するそれより多いという意見をシャノンさんに頂きました。・・・深すぎて、そろそろめまいがしてきた(と中途半端に逃げる・・・))

これについては中さんのような「ソース互換主張派」がいらっしゃいます。

私もなんとなくソース互換寄りかもしれません。

むしろ今のところ遊びでC#やっていますのでDLL分割して片方だけコンパイルするって状況にはなりにくいです。

2.setter privateで読み取り専用プロパティ派vs readonlyで読み取り専用プロパティ派

読み取り専用プロパティをどう扱うかで状況は変わると思いますので対決しちゃうのは無理があるかも知れません。私はなんとなくreadonlyにしておいて、コンストラクタで初期値設定するほうが読み取り専用を強調してるようで好きです。

それと別ですが、

【A】public int Width { get; private set; }

となっているくらいならば、

【B】private int _Width;

public int Width { get { return _Width; } }

としちゃうほうが私は好きです。

というよりも「設計の最初っからリードオンリーなんだよっ」ってプロパティ作ることってそんなに多いですか??

「最初はプライベート→あとからやっぱり公開」の状況のほうが私には多かった気がします。例を挙げれば継承されたクラスのプライベートメンバーをやっぱり公開しよう、とかそういうやつです。なのでそういう意味でも【B】にするケースが私の中では多いように思います。

●めげずに結論言っちゃうぞ

前エントリーと同じですが・・・やっぱ私には自動プロパティの必要性は相当ひくいって事になりそうです。

投稿日時 : 2008年3月31日 11:08

コメント

# re: [C#]自動プロパティの必要性 2008/03/31 11:28 myugaruの色々構想中・・・!
re: [C#]自動プロパティの必要性

# re: [C#]自動プロパティの必要性(その2) 2008/03/31 12:13 シャノン
> 1.バイナリ互換主張派vsソース互換主張派

プロパティにしてもソース互換性は失われませんが、フィールドにすると、プロパティであることを前提にしているリフレクションコードが動かなくなります(ふぃーるどであることを前提にしているコードはそんなにありません)。
前エントリでの論点は「短いかどうか」だったはずです。
俺なら短さを理由にフィールドを選ぶことはありません。

> 2.setter privateで読み取り専用プロパティ派vs readonlyで読み取り専用プロパティ派

この背後には、クラス内からプロパティを書き換える時には、そのプロパティの背後にある変数を直接書き換えればいいから、という前提があります。
しかし、プロパティのセットと変数の書き換えが必ずしもイコールでない場合があります(プロパティをセットしたときに何らかのアクションを起こすものなど)。
そういう時は、クラス内からでもプロパティを経由してセットすることには理由があるので、一概には決められない問題だと思います。


# re: [C#]自動プロパティの必要性(その2) 2008/03/31 12:16 シャノン
見当違いのこと言ってた。
自動プロパティのsetterではアクションを起こせませんね。

> としちゃうほうが私は好きです。

俺も好きです…(〃∇〃)ポッ

# re: [C#]自動プロパティの必要性(その2) 2008/03/31 14:06 myugaru
To シャノンさん

>一概には決められない

今回も私は答えを早急に出そうとしすぎたようですねえ。
まあこの言葉を周りの人間にも何かにつけてよく言われます。

それにしても・・・うーん・・・・
深い・・・・
深すぎる!
すごく理解できました。
やはり言語というのは奥深くおもしろいものですね。
<del>カーネルサ(ry</del>アンダースも酔狂でこんな機能盛り込んだわけじゃないんですね。


・・・でもやっぱり私には要らない機能には変わりなしかな(^^;

# re: [C#]自動プロパティの必要性(その2) 2008/03/31 14:15 シャノン
NyaRuRuさんのBlogとか見ると、深さが200mくらい増すと思います。

# re: [C#]自動プロパティの必要性(その2) 2008/03/31 19:34 myugaru
To シャノンさん
はい、いつも拝見しています。
うっかり深さを忘れて溺れてしまいます。
でもNyaRuRuさんのBlogは意外なところにちゃんと手すりがついてたりするから嬉しいです。

Post Feedback

タイトル
名前
Url:
コメント