Поддерживает ли Mono «Инициализаторы модулей»?

#.net #mono

#.net #mono

Вопрос:

Просто любопытно, поддерживает ли mono «Инициализаторы модулей»? http://blogs.msdn.com/b/junfeng/archive/2005/11/19/494914.aspx

Ответ №1:

ДА.

Я не знаю IL, но я написал это на C#

 using System;
public class Program {
    public static void Main(string[] args) {
        Console.WriteLine("Main");
    }  
}
 

Затем я использовал monodis для создания il-файла и добавил этот код после .module main.exe линия.

 .method assembly specialname rtspecialname static
  void .cctor() cil managed
{
   .maxstack 8
   IL_0000:  ldstr "module method"
   IL_0005:  call void class [mscorlib]System.Console::WriteLine(string)
   IL_000a:  ret
}
 

И когда он запускается, я получаю ожидаемый результат.

 module method
Main
 

И ilasm, и среда выполнения поддерживают это.

Комментарии:

1. 1 Я почти собирался сказать «приятно видеть на SO», пока не понял, что вы один из самых неактивных 3-летних участников. 😛

2. Да. Но в любом случае хороший ответ! Особенно учитывая, что Саймон, по мнению некоторых людей, является кем-то вроде гуру IL. 😉