2011-03-14 3 views

답변

4

modopt는 IL에서만 사용됩니다. 그것을 해석하고 생성하는 것은 .NET 언어 컴파일러의 임무입니다. ,

사용자 정의 수정 ("필요한 수정") modreq 를 사용하고 ( 는 ("옵션 수정은"), 사용자 지정 특성과 유사하다 modopt 정의 : ECMA-335, 파티션 II는 장 7.1.1은 언급 §21) 수식어가 선언에 첨부되지 않고 서명의 일부인 것을 제외하고는.

[이론적 근거 : 필수 및 선택 수식의 구분은 일반적으로 메타 데이터 컴파일러 및 프로그램 분석기를 다루는 CLI 이외의 다른 도구에 중요한 입니다. 필수 수정 자는 이 수정 된 항목에 대한 특수 의미론임을 나타내며, 선택적 수정자는 으로 무시할 수 있습니다.

예를 들어, 에서 const를 한정자는 C 프로그래밍 언어는 const를 수식 매개 변수는 특별한 방법으로 치료를 필요는 없다 이있는 메소드의 호출 이후 옵션 수정 모델링 수 있습니다. 다른 쪽에서는 이 C++로 복사 생성되는 매개 변수는 이 사본을 생성하는 발신자이므로 필요한 사용자 정의 속성으로 표시된 속성이어야합니다. end rationale]

즉, CLR에 관계가 없지만 언어에 중요한 선언에 메타 데이터를 추가 할 수 있습니다. 특히 C++/CLI 컴파일러는이를 사용합니다. 필요에 따라 .NET에는 const 키워드와 같은 것이 없습니다.

2

modopt은 (는) C 언어로 modopt을 쓸 수없는 .NET 언어의 실제 키워드가 아닙니다. 이것은 .NET 2.0에서 처음 등장한 C++/CLI 컴파일러에 의해 생성 된 사용자 정의 수정 자이므로 modopt이 .NET 런타임에 동시에 추가되었다고 가정합니다.

관련 문제