Mono реализует CLR? Или, по крайней мере, какой-то неуправляемый InternalCall? Или ничего?
Мы знаем, что C# использует неуправляемый код, такой как P/Invoke, или код, реализованный в CLR, как InternalCall. Что я хочу знать, так это то, что mono сам реализует полный CLR или просто какой-то неуправляемый код или ничего? Я могу использовать.Net Reflactor или ILSpy для просмотра управляемой сборки, но иногда из-за проблем с производительностью мне нужно знать, как CLR реализует некоторый неуправляемый код. Нравится: Как работает System.String.get_lenght()? Любой может ответить на поставленные выше вопросы или приветствуется некоторая информация об этом. Благодарю.
1 ответ
Да, mono реализует весь CLR, поэтому, если вы посмотрите на его код, вы найдете реализацию таких методов, как String.get_Length()
,
Но Mono отличается от Microsoft CLR. Что это значит, если вы посмотрите код для String.get_Length()
в Mono Microsoft CLR может иметь совершенно другой способ сделать то же самое.
Другой вариант - общеязыковая инфраструктура общего источника. Это от Microsoft и, вероятно, больше похоже на их реализацию CLR, чем Mono, но это все же не то же самое. И новейшая доступная версия соответствует.Net 2.0.