확장 메소드 및
키워드 C#
C#에 객체를 사용하여 확장 방법을 사용하면 런타임 오류가 발생할 수 있습니다. 예를 들어 dynamic
이 코드는 완벽하게 작동합니다. 그러나 우리가 이것을 시도한다면 :
dynamic
a
가 던져졌습니다. 이것은 컴파일러와 런타임이 확장 방법과 동적 객체를 처리하는 방식으로 인해 발생합니다.
일반적으로 컴파일러는 네임 스페이스 및 List<int> list = new List<int>() { 5, 56, 2, 4, 63, 2 };
Console.WriteLine(list.First());
로그인 후 복사
지시를 고려하여 코드 범위 내에서 사용 가능한 모든 정적 클래스를 검사하여 확장 방법을 검색합니다. 이를 통해 에서 올바른
확장 방법을 찾을 수 있습니다.
dynamic dList = list;
Console.WriteLine(dList.First());
로그인 후 복사
객체를 사용하여 런타임에는 네임 스페이스 및 지시에 대한이 컴파일 타임 정보가 없습니다. 런타임 에이 정보를 포함시키는 것은 엄청나게 복잡하고 비효율적입니다. 따라서 C# 디자이너는 성능 오버 헤드와 잠재적 불안정성을 피하기 위해이 기능을 구현하지 않기로 선택했습니다.위 내용은 C#의 동적 개체에서 확장 메서드가 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!