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

... 16  17  18  19  20  21  22  23  24  25  26  27  28  [29]  30  ...
NoWriterDateCnt.TitleFile(s)
5201김대훈8/3/201917178상속시 생성자에 대해 질문드립니다 [3]
5200농상7/30/201920406foreach로 데이터 변경 [2]
5190오리다람7/20/201917196질문드립니다. [3]
5189진우7/19/201916151C# 스레드풀 코어별 실행 문의 [2]
5188황태관7/19/201915776비주얼베이직 2019 실행 할때 마다.. [3]
5187플하7/19/201919180UWP 관련 궁금한 사항에 대해서 [1]
5186김대훈7/14/201917959박싱과 언박싱에 대해 [2]
5185농상7/13/201916231Nullable에 대해서 [1]
5184김대훈7/4/201915834저자님의 책을 다 본후에는 [2]
51837/2/201917486.NET Compact Freamwork 컨트롤러 더블버퍼링 [1]
5182wpf ...7/2/201916834wpf 질문 드립니다. [1]파일 다운로드1
51817/1/201918722DataGridview Doublebuffer 에 대해서 질문드립니다. [2]
5180김대훈6/25/201918162배열과 반복문에서 질문드립니다 [2]
5177농상6/13/201920868멀티스레드 건의 [2]
5176이선호6/13/201917588안녕하세요. 닷넷 문제로 검색하다 알게되어 들어왔습니다. 현재 IIS 문제가 있어 질문드립니다. [1]
5175Chobo6/12/201917667WPF Ellipse 그리기! [3]
5174농상6/11/201917249ThreadPool 조인에 관해 [1]
5173전우치6/9/201917997공유 리소스에 대한 스레드 동기화 처리를 위해서 lock 이용 시 문의 [3]
5172김대훈6/7/201916740너무힘드네요 공부에 대한조언부탁드립니다 [2]
5171조남석6/4/201916165EX)11-2(treeview)에 대한 질문입니다. [3]
5170레리6/4/201917049Setup 프로젝트 레지스트리 설정 관련 질문입니다. [1]파일 다운로드1
5169농상6/3/201916714멀티스레드 파라미터 관련 [2]
5168익명유저5/30/201916212항상 정말 감사드립니다... [1]
5167WPF5/23/201916879질문드립니다. [1]
5165이대희5/22/201915419Visual Studio 설치 구성요소 문의 (C# 7.3 개정판 관련) [1]
5164레드5/21/201918290실행 과정과 실행파일 디버그 시 Icon변경 질문드립니다. [5]
... 16  17  18  19  20  21  22  23  24  25  26  27  28  [29]  30  ...