C #에서 초기 / 늦은 바인딩이 발생할 때 머리를 돌리려고합니다.
비가 상 방법은 항상 초기에 바인딩됩니다. 가상 메서드는 항상 늦게 바인딩됩니다. 컴파일러는 실행시 바인딩 할 실제 메서드를 확인하기 위해 추가 코드를 삽입하고 형식 안전성을 확인합니다. 따라서 하위 유형 다형성은 후기 바인딩을 사용합니다.
리플렉션을 사용한 메서드 호출은 후기 바인딩의 예입니다. 컴파일러가 아니라이를 달성하기 위해 코드를 작성합니다. (예 : COM 구성 요소 호출)
VB.NET은 Option Strict가 꺼져있을 때 암시 적 후기 바인딩을 지원합니다. 객체는 Object 유형으로 선언 된 변수에 할당 될 때 후기 바인딩됩니다. VB 컴파일러는 실행 시간에 올바른 메서드에 바인딩하고 잘못된 호출을 포착하는 코드를 삽입합니다. C #은이 기능을 지원하지 않습니다.
올바른 방향으로 가고 있습니까?
대리자를 호출하고 인터페이스 참조를 통해 메서드를 호출하는 것은 어떻습니까? 그게 일찍 또는 늦게 구속됩니까?