誰もが良いプロパティを設計して実装するためのガイダンスを提案できますか?既存のライトアップにプロパティの設計のヒント?
- 副作用
- 相互排他
- シンメトリー
- の同時実行性と可逆
- エラー処理/例外
ポインタを:私は、次のような側面に関係していますこれらのトピックに答えることは素晴らしいことです。私はWPF依存関係プロパティのヘルプを探しているわけではありません。
誰もが良いプロパティを設計して実装するためのガイダンスを提案できますか?既存のライトアップにプロパティの設計のヒント?
ポインタを:私は、次のような側面に関係していますこれらのトピックに答えることは素晴らしいことです。私はWPF依存関係プロパティのヘルプを探しているわけではありません。
原則として、プロパティには境界チェックや型チェック(言語に依存する)以外のほとんどのロジックが含まれてはいけません。したがって、プロパティを実装する際には、エラー処理/例外以外のリスト上のすべての項目を要素にするべきではありません。
W.R.Tエラー処理では、プロパティから例外をスローすることは絶対に可能です(呼び出しブロックがプロパティを無効な値に設定しようとしたときなど)。また、try ... catch文を使用すると、データを解析しようとするときに適切です。
この例は、Webアプリケーションでリクエストパラメータを非表示にするプロパティを使用して次のようになります。
public int UserId
{
get {
string x = Request["userid"];
int userid = -1;
if (!int.TryParse(x, out userid))
throw new ApplicationException("UserID must be a valid integer");
return userid;
}
}
これは不自然と簡単な例のビットですが、私はそれがポイントを示している願っています。現実のアプリケーションでは、状況に応じてIDの有効な範囲などを確認するために、エラー処理や構文解析のさまざまな方法を使用することができます。
詳細については、wikipedia entryもお勧めです。