본문 바로가기
C# 일반, static, sealed, abstract 클래스 차이점 C# 일반, static, sealed, abstract 클래스 차이점 Class 타입 일반 static sealed abstract 객체 생성 YES NO YES NO 상속 YES NO NO YES 상속 (다른곳) YES NO YES YES 그리고 sealed 클래스는 다른 클래스로 상속될 수 없습니다. 오로지 다른 클래스를 상속받는 것만 할 수 있습니다. 123sealed class MySealedClass : BaseClass // is ok class MyOtherClass : MySealedClass // won't compilecs 추신.위 표가 잘린다면 아래 그림을 보세요. C# 일반, static, sealed, abstract 클래스 차이점 2017. 7. 20.
C# Sealed 클래스는 왜 빠를까? 최적화에 필요한 이유 컴파일러는 낮은 레벨에서 C# sealed 클래스를 micro-optimization 할 수 있습니다. 컴파일 타임에 C# sealed 클래스에 함수를 호출하면 callvirt IL 명령어 대신 IL 명령어를 사용합니다. C# sealed 클래스의 함수는 오버라이드 되지 않음.가상 함수 테이블 검사 과정을 생략.가상 함수 테이블은 조회 시간이 상대적으로 짦음.callvirt 보다 속도에서 유리함. 이렇기에 성능이 조금 좋아집니다. 최적화 중이라면 적용하세요. 즉, 다형성을 잃어버린 클래스라 선언했기에 컴파일러는 여러 검사 과정을 생략합니다. (확장되지 않는 클래스) 예를 들어, non-sealed 클래스에 makeNoise()란 함수가 있을 때, 이 함수의 재정의 여부는 알 수가 없습니다. 함수 재정의 .. 2017. 3. 5.