일부 공용 속성이있는 사용자 정의 컨트롤이 있습니다. 특정 속성은 정수이지만 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
에서 상속)이 발생합니다.
정상적인 예외는 있습니까? 아니면 더 좋은 방법이 있습니까? 아마도 속성일까요?
감사합니다. 나는 이것이 더 완전한 대답이기 때문에 이것을 받아 들였다. –