저는 항상 캐스팅을 피해야한다는 생각에 빠져 있습니다. 물론 실제 선택의 여지가없는 경우가 있습니다 (특히 여러 인터페이스가 지원되는 경우 인터페이스 유형간에 변환해야하는 경우).Null 허용 유형으로 캐스팅하는 것이 나쁜 생각입니까?
나 자신이 최근에 많은 것을 사용하는 것을 보아온 한 패턴은 Null을 허용하지 않는 타입에서 Null을 허용하는 타입으로 캐스팅하는 것입니다. 예 :
public int? GetFooBar(someCriteria) {
// Code to get a Foo
return foo == null ? null : (int?)foo.Bar; // Bar is a non-null int
}
여기가 유일한 선택입니까? 내가 가질 수있는 다른 옵션은 무엇입니까?
나는 예외를 던질 수 있다고 가정하지만, 필요하지 않은 예외 처리기로 내 코드를 차분하게하는 것은 싫다. 게다가, foo를 찾지 못하는 것은 예상 된 발생 일 수 있으며 "예외적 인"것으로 간주되지 않습니다. 당신은 항상 할 수
내게 잘 어울린다 –
나는 보통 'null'을 캐스팅하는 것을 선호한다. – Mehrdad
또한 bar의 기본값을 정적 멤버로 정의 할 수 있습니다. –