いくつかのパブリックプロパティを持つユーザーコントロールがあります。特定のプロパティは整数ですが、最大値がconst
以下の正の値のみを受け入れる必要があります。現在、私は次のことを行っています:プロパティが受け入れる値の範囲を制限する正しい方法は何ですか?
private int markerwidth = 2;
[DefaultValue(2), Category("Appearance"), Description("Size of position marker")]
public int MarkerWidth
{
get
{
return this.markerwidth;
}
set
{
if (value > 0 && value <= MAXMARKERWIDTH)
{
this.markerwidth = value;
}
}
}
これは、仕事をしますが、黙って失敗します。私は、負の値には0、それを超えるものには最大値を使用するロジックを追加することができますが、それでも理想的ではありません。
対照的に、デザイン時(おそらく実行時)に負の値を設定しようとすると、TabValueプロパティ(UserControl
から継承されます)が表示されます。
通常の例外を除いてこれが達成された場合は、それとも良い方法がありますか?属性はおそらく?
ありがとうございます。私はこれをより完全な答えとして受け入れました。 –