プロパティをabstractに

最初どうやるんだろって悩んだ。

普通のプロパティ

public string Name
{
   get{ return name; }
   set{ name = value; }
}

思いついたヤツ

public abstract string Name;

これだとビルド時に以下のようなエラーが出て失敗する。フィールドと認識されているようだ。

修飾子 'abstract' はフィールドで有効ではありません。プロパティを使用してください。

abstractなプロパティ

正しくはこう書く。

public abstract string Name
{
  get;
  set;
}

ただなんとなくこれは許可して欲しかった。以下はabstract宣言しているくせにロジックが入っているよ、とエラーとなる。

public abstract string Name
{
  get;
  set { name = value; }
}


参考URL:http://msdn.microsoft.com/ja-jp/library/w86s7x04(VS.80).aspx