ネタモト
C# 使ってる人、自動プロパティってどうなんですか?
[C#]自動プロパティの必要性
個人的な意見をさくっと短く!!!を目指してます。
まずは…
普通のプロパティ
- public int Width;
- public int Width { get; set; }
- private int _width;
// 実際にはgetやsetに処理が入る可能性有り
public int Width { get { return _width; } set { _width = value; } }
私が書く場合の優先順位は…
2 → 3です。1は無い。
理由は、プロパティじゃないとサポートしてないよ!っていう前提のものが私が使う範囲では多いから。
それ以外の理由はないです。
っていうか、INotifyPropertyChangedとかちょっとした事をしようとすると途端に自動プロパティは使えないので不便。
そこらへんを次バージョンあたりでどうにかしてほしいと思う今日この頃でした。
まぁ今は趣味で書いてるだけだから自動プロパティが多いだけだと思うけど、実際にプロジェクトとかでやったりするときはジェネレータ作って定義体とかから自動生成できるものは自動生成するようにするから3が主流になるかも。
別にフィールドでいいよ~って環境にいるならフィールドでも問題ないと思う。
でも、世の中的にはプロパティを前提にしてるものがあるので私はプロパティ派。
読み取り専用プロパティ
- public readonly int Width; // コンストラクタで初期化
- public int Width { get; private set; }
- public int Width { get { return なにがし; } }
これも2 → 3です。1は無い。
1を使う場合は定数として定義する時位かなぁ。
読み取り専用プロパティとは区別して使いそう。
結局
宗教論争的ですね!だから盛り上がって結論は出ない♪