2010-03-05 4 views
12

C# 생성자 extern 수정 자의 목적은 무엇입니까?C# 생성자 extern 수정 자의 목적

extern 메서드를 사용하여 Win32 함수를 호출하는 방법에 대해 알고 있지만, 작성자는 어떻습니까?

실제 사례를 알려주십시오.

참고이 :

class MyClass 
{ 
    public extern MyClass(); 
} 
+1

무슨 뜻인지 예를 들려주세요. –

+0

MSDN 버전의 정의 및 예제가 도움이 될 것이라고 생각했습니다. http://msdn.microsoft.com/en-us/library/e59b22c5%28VS.80%29.aspx –

+1

하지만 생성자에서 작동하지 않습니다. 아마도 그의 질문입니다.하지만 확실하지 않습니다. 따라서 저는 원합니다. 그를 정교하게. –

답변

1

는 C# 1 스펙 here는 떨어져 전용 내부 보호 대중 통근 사용될 수있다에서 나타내고이 표준 외부 기준 있음 - here 참조. 이것은 나에게 contructor가 나중에 클래스에 링크되어 있다고 말합니다. PInvoke 통화가있는 것과 같습니다. 아무것도, 나는 추측하고있어, 외부 생성자를 포함하는 외부 .net .modules의 연결을 허용하는 C# 컴파일러 구현자를 중지합니다.

예제를 줄 수는 없지만 MC++에서 생성자를 구현하는 방법이나 실제 IL 모듈을 구현하는 것이 한 가지 방법으로 의심 스럽습니다.

6

외부 제공자의 용도/목적 중 하나는 CLR 내에서 구현 된 생성자를 사용하는 것입니다. 당신이 mscorlib.dll에서 반사판을 사용하고 선택 System.String 유형 살펴 분해, 당신은 볼 수 있습니다 : 기본적으로 (문자 []) 문자열 클래스의 ctor가 외부에서 구현되는 것을 우리에게 알려줍니다

[MethodImpl(MethodImplOptions.InternalCall)] 
public extern String(char[] value); 

.net 런타임의 일부로.