로 전 C#에 대한 객체를 캐스팅하기위한 더 좋은 방법이 무엇인지 궁금 해서요 :(MyClassName) 객체는 MyClassName
MyClassName test = (MyClassName)object;
MyClassName test = object as MyClassName;
난 당신이 첫 번째 방법을 할 경우, 당신은 예외가 있음을 이미 알고 있으며, 두 번째 방법은 null로 테스트를 설정합니다. 그러나, 나는 왜 다른 하나 이상 궁금 해서요? 그 일의 '더 나은 방법'이없는 경우 하나의 방법을 사용하기위한 지침 무엇인가 ...
나는 첫 번째 방법을 많이 볼 수 있지만 그때가 null을 확인할 수 있기 때문에 두 번째 방법을 좋아한다 또는 다른? 여기
2 가지 경우에만 한 가지 유형의 검사 만 수행하므로이 상황에서와 같이 사용합니다. –
'if (someObject is MyClass)'에 실제로 생성 된 코드는 실제로'if ((someObject as MyClass)! = null)' –
** **'is'와'(cast) '구문을 사용하면 유형 검사 비용이 두 번 발생합니다. 'is'를 사용하여 타입을 이미 확인했다면'as'를 사용하여 캐스트를 수행하는 것이 안전하고 암시 적 변환 검사를 무시할 수 있기 때문에 훨씬 빠릅니다. –