2010-03-05 4 views
12

Какова цель модификатора внешнего редактора C#?Назначение модификатора extern конструктора C#

Я знаю об использовании extern METHODS для вызова функций Win32, но как насчет CONSTRUCTORS?

Просьба привести практический пример.

ПримечаниеЭтот:

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

Просьба привести пример того, что вы имеете в виду. –

+0

Я думал, что версия определения и пример MSDN поможет? http://msdn.microsoft.com/en-us/library/e59b22c5%28VS.80%29.aspx –

+1

Но это не работает на конструкторах, возможно, это его вопрос, но я не уверен, поэтому я хочу его разработать. –

ответ

1

C# спецификация here указывает, что помимо частных, внутренние, защищенные и общественности, могут быть использованы ехЬегп и что это стандартная внешняя ссылка - см here. Это для меня говорит, что контрструктор связан позже с классом. Также как и звонки PInvoke. Нет ничего, я предполагаю, останавливая реализацию компилятора C#, позволяющего связывать внешние .net-модули с указанными внешними конструкторами.

Я не могу привести пример, но я подозреваю, что один из способов получить конструктор в MC++ или просто простой IL-модуль.

6

Я считаю, что одно использование/назначение внешнего оператора состоит в том, чтобы конструктор реализовывался внутри самой CLR. Если разобрать mscorlib.dll с помощью отражателя и посмотреть на тип System.String, вы увидите:

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

Который в основном говорит нам о том, что (символ []) т е р для класса строки внешне реализован, как часть времени выполнения .net.

Смежные вопросы