В соответствии с разделом "10.12 Статические конструкторы" "Статический конструктор языка С# версии 5.0" статический конструктор может быть помечен модификатором "extern", и в этом случае он называется внешним статическим конструктором.
Обычные (не внешние) статические конструкторы хорошо известны. Они используются для инициализации статических полей и свойств.
Внешние статические методы часто используются для вызова собственных функций через P/Invoke.
И я также знаю довольно эзотерические конструкторы extern (см. также этот вопрос). Например, класс String
имеет несколько таких деклараций, эти конструкторы реализуются средой выполнения.
Но существуют ли какие-либо реальные применения внешних статических конструкторов? Я просмотрел coreclr repo и ничего не нашел. Спецификация языка не могла дать описание какой-либо конструкции, которая никогда не использовалась в дикой природе. Или может?
Мое предположение: С# имеет внешние статические конструкторы только потому, что CLR поддерживает их (в принципе).