C # и .NET не позволяют объявлять конструктор интерфейса.
Это просто обязательное ограничение реализации этого интерфейса (см. ISerializable в библиотеках .NET).
Если вы подумаете об этом, иметь конструктор в интерфейсе не имеет смысла, так как вы должны знать конкретный класс, который вы хотите создать, когда вызываете конструктор. Как бы вы вызвали такой конструктор интерфейса и каков был бы результат?
From MSDN :
MethodImplOptions.InternalCall : указывает внутренний вызов. Внутренний звонок - это звонок в метод, реализованный в рамках сама общеязыковая среда выполнения.
Итак, в основном, CLR предоставляет свою собственную реализацию этого метода (которая, вероятно, находится в машинном коде), поэтому вы не можете увидеть ее в дизассемблере.
Насколько мне известно, ответ на три ваших вопроса: нет.
Я хотел бы обратить ваше внимание на то, что Документация Apple не документирует унаследованные методы в документации подклассов.
Более того, NSDictionary
и NSMutableDictionary
не так уж редки, чтобы напоминать об их наиболее распространенных методах. Для меня достаточно ссылки на существующую документацию, которая у вас уже есть.
Что касается вашего конкретного поведения этих общих методов в вашем подклассе, я бы просто вставил специальный раздел в Подробное описание chapter.
В любом случае, возможным обходным решением было бы дать и объявление, и реализацию ваших унаследованных методов. Но это немного излишне просто для документации:
Используется MethodImplOptions.InternalCall
в сочетании с extern, чтобы сообщить
время выполнения, в котором реализован метод
внутри самой системы.
Это сделано для многих основных .NET.
Рамочные методы, которые лучше
обслуживается путем внедрения в
неуправляемый код. Например, многие из
методы на String
, GC
и
Математические классы отмечены как
Внутренний вызов
. Как вы заметили,
Guid.CompleteGuid
также является
InternalCall
.