現実的には、プロパティのゲッターとセッター内に必要なものをほとんど追加できます。事実上、これらはこれを書くことを避ける簡単な方法にすぎません。
private String _value;
public String GetValue
{
return _value;
}
public void SetValue(string value)
{
_value = value;
}
したがって、メソッドで実行できる場合は、プロパティで実行できます(必ずしもそうする必要があるとは限りません)。
何が適切かというと、その多くは文脈に依存し、多くの人が異なる意見を持っています。私が従おうとしている一般的なガイドラインは次のとおりです。
- 時間がかかりすぎることはしないでください。プロパティは高速であることが期待されます。
Exception
それが文書化され、それが理にかなっている場合を除いて、スローするものを入れないでください。コードを壊すプロパティの値を使用するArgumentException
かNullReferenceException
、説明する必要がある場合は、例外が必要な場合、またはプロパティ自体に関係のない例外が発生する可能性のあるメソッドを呼び出す場合は、メソッドの方が適しています。
- 常識を使用してください。あなたが自分自身に、私がしたい、
get
またはset
値を言うことができるなら、プロパティは理にかなっています。私がしたいdo something
のなら、あなたはおそらく方法を使ったほうがいいでしょう。
- これは#1に戻りますが、取得または設定するバッキングフィールドがない場合(自動プロパティはとにかくバックグラウンドでこれを行います)、プロパティが本当に正しいアプローチであるかどうかを考える必要があります。
しかし、私が言ったように、これらは私のガイドラインであり、私は時々それらを破ります、しかし私がそうするとき、私はプロパティが例外のない、または長期的な何かをするつもりであることが文書化されることを確認する傾向があります。
あなたの例は、またはの場合に例外をスローするmyColl
可能性があるため、どちらもnullになる可能性が100%確実でない限り、これをプロパティにすることはありません。p
null