C#のプロパティは宣言と一緒に初期値指定することはできない。フィールドと組み合わせるか、コンストラクタで初期化するとかしないといけない。
class Person
{
string _Name = "名無し"; // フィールドでやるか
public string Name
{
get
{
return _Name;
}
set
{
_Name = value;
}
}
public Person()
{
Name = "名無し"; // コンストラクタでやるか
}
}
これまでは値をセットしたときにイベントを起こすとか、設定ファイルと連動させるときとかに使ったことがあったくらい。
もしかしたら次期バージョンではできるのかなと思って、「C# プロパティ 初期 .net framework 4.0」とかで調べてみるけど、無さそうですね。
そのかわりちょっと興味をひく記事を見つけました。
[C#]自動プロパティの必要性
[C#]自動プロパティの必要性(その2)
出水さんという方のコメント「アセンブリ公開するのがわかっていれば、もともとフィールドでは置かないですしね」
なるほど、先日からCOMを使っているので意味分かります。インターフェースにフィールドは置けないんですよね。メンバ変数みたいなのをCOMに公開したければパブリックプロパティを使う必要があります。
インターフェースに初期化データを置くというのも変な気がするので、その辺で初期化は導入されないのかもしれないですね。詳しいことは知りませんが。