2010-12-09 7 views
8

단순히 호기심, MSDN왜 Convert.ToInt32 (DateTime)가 존재합니까?

이 방법은 항상 InvalidCastException이를 던졌습니다 호출 있다고 말한다.

프레임 워크에 왜 이러한 과부하가 있습니까? 그것은 어떤 종류의 패턴을 따르고 있습니까? 이전 버전과의 호환성을 위해 과부하를 제거하고 런타임 예외 대신 컴파일 오류를받는 것이 더 좋을 것이라고 가정합니다. 비록이 방법이 실제로 이전 프레임 워크에서 지원되었는지 기억이 안납니다.

+0

음,이 방법은 존재하지 않은 경우, 그것은 아마도 같은 예외를 던질 것이다, 어쨌든'Convert.ToInt32 (객체)'오버로드를 사용합니다 . – cdhowie

+0

이 메서드에서 반환 할 값이 무엇인지 궁금합니다. (밀리 세컨드는 맞지 않습니다.) 또한, 다음 패턴은'IConvertible '에서 발견 한 것과 같은 방법입니다. –

+0

@ 커크, 나는 그것이 내 생각이라고 생각하지 않는다. 나는 단지 그것이 존재 하는지를 묻고 있는데, 비록 그것을 사용할 수 없다고하더라도 ... –

답변

1

나는 IConvertable이 이것을 구현해야한다고 생각한다. 이 링크의 문서에서 볼 수 있듯이

+4

이것은 정적 메서드입니다 ... – cdhowie

+0

나는 정적 메서드가 전달되는 매개 변수에 인스턴스 메서드를 호출하는 것 같아요 Convert.ToInt32 (IConvertible obj) – poindexter12

+2

@poindexter : 올바른; 그렇습니다. 그러나 여전히 존재해서는 안됩니다. – SLaks

4

당신이 제공 :

이 방법은 미래 사용하기 위해 예약되어 있습니다

비고.

그들은 단순히 만족 스럽거나 필요한 구현을 찾지 못했지만 그렇게 할 계획입니다.

+0

사실 내 링크에서 비고를 보지 못했습니다 .. 흠 ..하지만 관계없이 현재 프레임 워크에서 사용하지 않는 이유는 무엇입니까? –

+0

@Stan R. - 당신이 옳다는 것을 알고 있습니다.내 브라우저가 자동으로 2.0 버전으로 보냈습니다. 발언이 있습니다. 나의 가정은 구현이 동일하기 때문에 여전히 관련이있다. 귀하의 다른 질문에 대한 응답으로,이 개체의 구현 팀은 진실하게 당신을 말할 수 있지만, 나는 다른 답변이 그다지 많은 점수를 놓치지 않았다고 생각합니다. –

+1

나는 동의한다, 나는 단지 2.0에 "동적 인"키워드를 소개하고 그것이 미래의 사용을 위해 말하는 것처럼 말하는 것을 말하고있다. –

0

그냥 그 예외를 던지기위한 책임이있는 DateTime.IConvertible.ToInt32 Method을 호출합니다. 어느 날 그것은 변환을 수행 할 것이며 Convert.ToInt32(DateTime)은 변경없이 작동 할 것입니다!

+2

그날까지는 미묘한 버그 일뿐입니다. 게다가, 그들은 언제나 나중에 그 과부하를 추가 할 수 있습니다. – SLaks

-1

그들은 단순히 문서에 넣었습니다. 특별한 것은 없었습니다. 이 존재하지 않는 경우, 동일한 조건은 다음과 같습니다

Convert.ToInt32(Object) 
+2

같은 조건이 아니에요. * 문자열 *을 ToInt32 (Object)에 전달할 수는 있지만 작동하지 않을 수있는 고유 한 오버로드 된 메서드가있는 DateTime은 사용할 수 없습니다. –

관련 문제