작성자 없음
작성자 정보가 삭제된 글입니다.
해결된 질문
20.06.29 14:51 작성
·
234
답변 4
4
2020. 06. 29. 20:00
ㅎㅎㅎ 당황하실건 없고 그냥 아주 약간 차이가 있습니다.
(Socket) 요렇게 캐스팅하는게 가장 일반적인데
이 경우 Socket으로 캐스팅 될 수 없으면 Exception이 나면서 크래시가 납니다.
(as Socket) 형태는 C++의 dyamic_cast와 유사한데,
캐스팅이 안 된다면 null을 반환한다는 특징이 있습니다.
사실 지금은 Socket 타입인 것을 100% 확신할 수 있으니
(Socket) 이렇게 하는게 성능상 아주 조금 낫긴 합니다.
2
2020. 06. 30. 19:53
네 약간의 차이는 있지만 선택의 영역이라 볼 수 있습니다.
다만 상속 관계에서 특정 타입에만 코드를 적용하고 싶을 때라면,
의도적으로 (as)를 이용해서 확인하는게 유용할 수도 있습니다.
예를 들어 class Monster : Object, class Player : Object로 정의된 상태에서,
처치한 Object가 Player인 경우에만 PvP 포인트를 주고 싶다면,
Player p = obj as Player;
if (p != null)
AddPvpPoint(...);
형태로 만들 수가 있겠죠.
0