Microsoft MVP성태의 닷넷 이야기
다음 제네릭에서 널익셉션이 뜨는 이유를 알수있을까요? [링크 복사], [링크+제목 복사],
조회: 10683
글쓴 사람
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 연산자를 사용해 형변환을 해야 합니다.
정성태

... 31  32  33  [34]  35  36  37  38  39  40  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
5056박종윤8/30/201821891c# dll을 C++에서 사용 시 event 호출 [4]파일 다운로드1
5055초보자8/29/201819946asp.net 에서 다른 서버의 iis를 stop하는 batch file을 실행시키는데 동작하지 않습니다. [5]
5054사도신8/29/201818796[wpf] textbox insert overite 모드시에 [4]파일 다운로드1
5053엿장수8/26/201817176directshow filter 에서의 IMediaSample 의 시간에대한질문입니다 [1]
5052오명현8/26/201816988Tcp소켓 실습 Exeption 도와주세요! [4]파일 다운로드1
5049오명현8/23/201817108책 477페이지 내용 중 이해가 안가는 부분이 있어 질문드립니다. [1]
5048오명현8/23/201816410포트 관련 질문 하나더 있습니다. [1]
5047오명현8/22/201817653포트가 없을 경우를 가정한 내용에 대해 질문이 있습니다. 책468p. [1]
5046엿장수8/22/201817209다이렉트쇼 필터 추가하는데 [2]
5045임도진8/22/201818270c# opencv dll파일 로드 질문 [3]파일 다운로드1
5044엿장수8/20/201818272graphedit 에 등록되어있는 필터를 가져와서 사용하는방법을 알고싶습니다 [2]
5043hori...8/20/201818267Expression에 대한 책의 예제 관련하여 질문드립니다. [1]
5042황윤하8/20/201820646모드버스 TCP 관련 질문 [3]
5041david8/18/201820019.NET WebAPI 에서 Response 지연되는 이유 [3]
5040농상8/14/201819191정규표현식에 대해서 [3]
5039유영태8/14/201821047비동기 소켓사용후 해당 스레드가 남아있을때 처리 방법 [4]파일 다운로드1
5038이정석8/9/201819238서버파일 로컬파일 비교 [2]
5037jjh8/8/201824017c# 으로 화면캡쳐해서 동영상으로 만드는앱을 만들고싶습니다 [6]
5036볼딱지8/8/201821468C# programming 개발 관련 질문이 있습니다. [1]
5035궁금합니...8/8/201822311C# 버전 고민 어떤 책을 사야하나요? [1]
5034신동열8/8/201819693덤프 파일 분석 관련해서 문의 드려요. [1]
5033최규성8/7/201822835C# WinForm, Oracle 9i 로 프로그래밍시 ODP.NET, 배포 설정 방법 질문입니다. [6]
5032이정석8/6/201824778C# 으로 만들 dll 등록 [7]
5031J.S.8/6/201818624System.Array class의 구조에 대한 질문 [1]
5030농상8/4/201818940람다 식을 이용한 메서드 정의 확대를 공부하고 있습니다. [2]
5029Soul...8/3/201818912C# ActiveX 컨트롤 질문드립니다. [4]
... 31  32  33  [34]  35  36  37  38  39  40  41  42  43  44  45  ...