Microsoft MVP성태의 닷넷 이야기
다음 제네릭에서 널익셉션이 뜨는 이유를 알수있을까요? [링크 복사], [링크+제목 복사],
조회: 9211
글쓴 사람
EK
홈페이지
첨부 파일
 

internal class Program
{
    static void Main(string[] args)
    {
        F<int>();
    }

    private static void F<T>()
    {
        object? obj = null;
        var value = (T?)obj;
    }
}

obj를 int? 로 캐스팅할줄알았는데
그냥 int로 캐스팅해서 예외터지네요.
왜 그럴까요?








[최초 등록일: ]
[최종 수정일: 4/12/2024]


비밀번호

댓글 작성자
 



2024-04-12 07시03분
엄밀히 object 타입의 인스턴스가 다른 타입으로 형변환 가능한 것은 아닙니다. 그게 가능한 경우는, object로 형변환했던 원래의 인스턴스 타입이어야만 합니다.

가령, 다음과 같이 했다면,

int a = 5;
object obj = a;

int n = (int)obj;

원래의 형변환이 가능합니다. 하지만, object obj = null; 이라고 했으면 해당 obj의 타입은 System.Object이기 때문에 그 어떤 것으로도 형변환이 되지 않습니다.

그리고, 캐스팅 연산자, 즉 괄호를 사용해 형변환하는 경우 대상으로 형변환이 안 되면 예외를 발생시킵니다. 예외를 원하지 않는다면 is나 as 연산자를 사용해 형변환을 해야 합니다.
정성태

... 76  77  [78]  79  80  81  82  83  84  85  86  87  88  89  90  ...
NoWriterDateCnt.TitleFile(s)
555dev....1/25/2007175592005 WebBrowser내에서 팝업 처리 문제 관련 질문입니다.
561정성태1/29/200720393    답변글 [답변]: 2005 WebBrowser 내에서 팝업 처리 문제 관련 질문입니다.
554sky1/23/200716182<급질문> interop 를 사용함에 있어 [2]
557sky1/26/200713540    답변글 [답변]: <급질문> interop 를 사용함에 있어
553deve...1/15/200715556오류가 나는데 도저히 모르겠네여...좀 봐주세요... [3]파일 다운로드1
551sky1/23/200714617[급질문] vb6으로 만들어진 dll 를
552정성태1/10/200716297    답변글 [답변]: [급질문] vb6으로 만들어진 dll 를 [1]
546오택성1/2/200715081스마트클라이언트 DebugIEHost.log 좀 봐 주세요. [9]
545심현철12/28/200615224ClickOnce를 이용한 SmartClient의 설치 자동화 방법에 대해서 문의를 드립니다. [1]
53912/26/200614310COM+ 자동등록 하니 속도가 영...?
540정성태12/26/200616223    답변글 [답변]: COM+ 자동등록 하니 속도가 영...? [1]
538오택성12/26/200615353스마트클라이언트에서 그리드 컴포넌트 사용시 화면에 그리드가 올라오지 않네요~ [1]
537김현12/23/200615914스마트클라이언트 CAS배포문제와, ASP.NET에서 SmartClient로 DB인자 넘기는 문제 입니다. [3]
536오택성12/23/200613461스마트 클라이언트에서 A폼에서 B폼에 있는 그리드에 데이타를 담을려고 하는데요... [2]파일 다운로드1
541달봉이12/27/200616069    답변글 [답변]: 스마트 클라이언트에서 A폼에서 B폼에 있는 그리드에 데이타를 담을려고 하는데요...
535김태곤12/22/200620024ActiveX DLL( VB 6.0 )와 관련해 질문드립니다. [1]파일 다운로드1
534심현철12/21/200615365IE Embedded SmartClient관련 질문입니다. [1]
542달봉이12/27/200615622    답변글 [답변]: IE Embedded SmartClient관련 질문입니다.
543심현철12/27/200614603        답변글 [답변]: [답변]: IE Embedded SmartClient관련 질문입니다.
544달봉이12/28/200614298            답변글 [답변]: [답변]: [답변]: IE Embedded SmartClient관련 질문입니다.
53112/20/200616103업로드 시에 로컬의 파일을 페이지 submit 시에 같이 태워보낼 수 있을 까요?
532정성태12/20/200613599    답변글 [답변]: 업로드 시에 로컬의 파일을 페이지 submit 시에 같이 태워보낼 수 있을 까요? [1]
527심현철12/19/200616418VC++과 C# COM의 interop에서 디버깅을 하는 방법에 대해서 물어봅니다.
529정성태12/19/200617609    답변글 [답변]: VC++과 C# COM의 interop에서 디버깅을 하는 방법에 대해서 물어봅니다. [1]
526독불장군12/17/200613937아랫글 과련... [1]
525독불장군12/15/200614130일주일 공부하고 있는데 잘 안되네요 도와 주세요 스마트 클라이언트파일 다운로드1
... 76  77  [78]  79  80  81  82  83  84  85  86  87  88  89  90  ...