부모글 보이기/감추기 AD BLOCK 해제 요청 이 글에는 광고가 많이 들어가 있지 않습니다. adblock을 해제하셔도 글을 읽는데 그다지 부담이 없으니 해제를 부탁드립니다. 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로 캐스팅해서 예외터지네요. 왜 그럴까요? [다음 글] cpp 라이브러리 디버깅 방법 문의 드립니다.[이전 글] Windows 앱 SDK C# 템플릿의 용도가 무엇인지요? [최초 등록일: 4/12/2024] [최종 수정일: 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 연산자를 사용해 형변환을 해야 합니다. 정성태 NoWriterDateCnt.TitleFile(s)