.NET 언어로 작성된 모든 코드는 MSIL로 컴파일되지만 MSIL 만 직접 사용할 수있는 특정 작업 / 작업이 있습니까?
MSIL에서 C #, VB.NET, F #, j # 또는 기타 .NET 언어보다 쉽게 수행 할 수있는 작업을 살펴 보겠습니다.
지금까지 우리는 이것을 가지고 있습니다 :
- 꼬리 재귀
- 일반 공분산
- 반환 유형 만 다른 과부하
- 액세스 수정 자 무시
- System.Object에서 상속 할 수없는 클래스가 있습니다.
- 필터링 된 예외 (vb.net에서 수행 가능)
- 현재 정적 클래스 유형의 가상 메소드를 호출합니다.
- 박스형 버전의 값 유형에 대한 핸들을 가져옵니다.
- 시도 / 결함을 수행하십시오.
- 금지 된 이름 사용.
- 값 유형에 대한 고유 한 매개 변수없는 생성자를 정의하십시오 .
raise
요소를 사용하여 이벤트를 정의하십시오 .- CLR에서는 허용하지만 C #에서는 허용하지 않는 일부 변환이 있습니다.
- 로
main()
방법을 만들지 마십시오.entrypoint
. - 기본
int
및 기본unsigned int
유형으로 직접 작업하십시오. - 과도 포인터로 재생
- MethodBodyItem의 emitbyte 지시어
- 비 System.Exception 유형을 던지고 잡습니다.
- 상속 열거 형 (확인되지 않음)
- 바이트 배열을 (4 배 더 작은) 정수 배열로 취급 할 수 있습니다.
- 필드 / 방법 / 속성 / 이벤트는 모두 같은 이름 (확인되지 않음)을 가질 수 있습니다.
- 자체 catch 블록에서 try 블록으로 다시 분기 할 수 있습니다.
- famandassem 액세스 지정자에 액세스 할 수 있습니다 (
protected internal
fam 또는 assem 임 ) <Module>
전역 함수 또는 모듈 이니셜 라이저를 정의 하기 위해 클래스에 직접 액세스합니다 .