두 예제 모두 동일한 상황에서 성공하거나 실패하며 성공할 경우 동작은 동일합니다.
두 번째 예제가 약간 이전 (캐스트시) 오류가 발생하고보다 구체적인 예외 (InvalidCastException
대 NullReferenceException
)가있는 경우 결과가 약간 다릅니다.
가장 큰 이점은 디버깅입니다. 실패하면 두 번째 예에서 첫 번째 예에서 실패한 이유에 대한 자세한 정보가 나타납니다. 특히 PropertyIdentifier가 null
대 non-string
인 경우 두 번째 경우에는 알 수 있지만 첫 번째 경우에는 알 수 없습니다.
또한 try/catch
인 경우 null
사례와 다른 코드 경로에서 string
사례를 처리 할 수 있습니다. 그러나, 당신은 아마 이런 식으로 코딩해서는 안됩니다 : 당신이 있다면, 당신은 뭔가 다른 일을하고있어.
그것은 당신이 다양한 경우에 다음과 같은 코드를 단계별 경우 상황을 조명 도움이 될 수는 :
var propertyI = lstProperty[i];
var propertyIdentifier = propertyI.PropertyIdentifier;
// pick one of these:
var propertyIdentifierAsString = propertyIdentifier as string;
var propertyIdentifierAsString = (string)propertyIdentifier;
if (propertyIdentifierAsString.CompareTo("Name") == 0)
이것은 내가 무슨 생각입니다! 감사합니다. –