이 시나리오가 주어진다면해당 객체가 인터페이스를 구현하는지 확인하는 방법
interface A {}
class B : A {}
A b = new B();
인터페이스 b에서 오브젝트 b가 생성되었는지 확인할 수 있습니까?
이 시나리오가 주어진다면해당 객체가 인터페이스를 구현하는지 확인하는 방법
interface A {}
class B : A {}
A b = new B();
인터페이스 b에서 오브젝트 b가 생성되었는지 확인할 수 있습니까?
이 같은 테스트 할 수있는 :
var b = new B();
var asInterface = x as A;
if (asInterface == null)
{
//not of the interface A!
}
우리는 실제 다음을 사용하는 것으로 더 많은 캐스트.
나는 스피드에 대해 그렇게 걱정하지 않는다. 의미 상으로는 사용하는 것이 더 적절하다고 생각한다. – Makach
@Dmitry - 테스트와 증명 링크가 있는가? 왜냐하면 난 그냥 "1000000000 iteration"과 "as"그리고 "is"가 약간 더 빠릅니다. – Stecya
당신은 거기에갑니다 : http://stackoverflow.com/questions/496096/casting-vs-using-the-as-keyword- in-the-clr, Is가 진실한 후에 당신이 할 일은 무엇입니까? 다시 캐스팅합니까? :) –
"인터페이스 A에서 생성되었습니다"란 무엇을 의미합니까? 'A'의 변수에 할당 된 사실에 의해'B'의 값을'A'의 구현에 대한 참조로 사용할 수 있다고 말할 수 있습니다 ... 당신의 질문을 명확히하십시오. –