2010-05-28 3 views
6

나는 System.Web.Configuration.CompilationSection에 대한 메타 데이터를보고하고 TimeSpan BatchTimeout 재산에 다음과 같은 특성을 발견했다 :이 허용 된 최대 값이 왜이유 10675199.02 : 48 : 05.4775807 CompilationSection의 TimeSpan 최대 값은?

[TimeSpanValidator(MinValueString = "00:00:00", 
MaxValueString = "10675199.02:48:05.4775807")] 

누군가가 설명 할 수 있습니까? TimeSpan 자체에는 상한선이 있으므로 왜 다른 값 유효성 검사가 있습니까? 왜이 숫자입니까?

답변

7

정확하게 정확히 TimeSpan의 최대 값입니다. TimeSpan.MaxValue위한 MSDN 인용 :

이 필드의 값은 Int64.MaxValue에 틱 동일하다. 이 값의 문자열 표현은 양수 10675199.02 : 48 : 05.4775807입니다.

8

나는 대답이 완전히 질문에 대답하지 않는다고 생각합니다. 참으로 같은 최대 값입니다. 그리고 그것은 우연이 아닙니다.

[TimeSpanValidator(TimeSpan.Zero, TimeSpan.MaxValue)] 

: 같은

[TimeSpanValidator(MinValueString = "00:00:00", MaxValueString = "10675199.02:48:05.4775807")] 

아니라 뭔가 :하지만 왜 정의는 무엇입니까?

속성은 두 번째 종류의 정의를 허용하지 않기 때문에 간단히 표현할 수 있습니다. 어셈블리에 컴파일 된 메타 데이터이기 때문에 컴파일 타임 상수 만 허용합니다.

+2

이 부분을 확장하려면 다음과 같이 정의하십시오. public static readonly TimeSpan Zero = new TimeSpan (0);, public static readonly TimeSpan MaxValue = new TimeSpan (Int64.MaxValue); 그것들은 컴파일 할 때 사용할 수없는 유형의 인스턴스입니다. –

관련 문제