Вопросы по теме 'il'

Можно ли кодировать в MSIL?
Мне просто любопытно узнать, можно это сделать или нет. Я не планирую делать это, если он не принесет значительных преимуществ в производительности. Я веб-разработчик и разработчик игр, но обычно я не разрабатываю игры на C #.
826 просмотров
schedule 14.11.2021

Почему компилятор C # не оптимизирует повторную инициализацию значения по умолчанию для локальной переменной?
Фон Я знаю, что компилятор «пропустит генерацию кода для таких вещей, как int foo = 0; для полей, потому что распределитель памяти инициализирует поля значениями по умолчанию». Ссылка class Foo { public int a =...
498 просмотров
schedule 01.12.2021

Если System.Double инициализирует постоянное поле NaN как double.NaN, означает ли это, что Double и double не относятся к одному и тому же типу?
В редакторе Visual Studio C #, когда вы щелкните правой кнопкой мыши ключевое слово «double» или идентификатор «Double» и выберите «Перейти к определению», VS сообщит вам, что «NaN» объявляется и инициализируется следующим образом: public const...
393 просмотров
schedule 17.10.2021

Как реализовать поверхностное копирование с помощью IL (C #)?
Я хочу реализовать неглубокую копию с помощью C # IL вместо прямого отражения. • Версия ShallowCopy с прямым отражением: public T ShallowCopy<T>(T instanceToShallowCopy) where T : class { Type type =...
55 просмотров
schedule 25.10.2021

Переносимый исполняемый файл .NET VS сборка .NET
Я запутался. в некоторых статьях я читал, что PE - это сборка и хранилища кода IL в PE. В других я читал, что PE имеет связанный манифест сборки и хранилища кода IL в PE. в некоторых статьях я читал хранилища IL в сборке, а также в разделе...
1770 просмотров

Как изучить IL на CLR
Поскольку эти коды IL - это то, что я вижу больше, мне нравится учиться правильно их интерпретировать. Мне не удалось найти такую ​​документацию, как C # Compiler или любую другую, поэтому я думаю, что смогу в значительной степени позаботиться об...
6690 просмотров
schedule 27.02.2022

Могу ли я заставить компилятор оптимизировать определенный метод?
Есть ли атрибут, который я могу использовать, чтобы сообщить компилятору, что метод всегда должен быть оптимизирован, даже если глобальный переключатель компилятора /o+ не установлен? Причина, по которой я спрашиваю, заключается в том, что я...
1217 просмотров
schedule 13.03.2022

Создайте экземпляр типа с помощью Emit (Opcodes.Call, methodinfo)
Я использую Reflection и ilGenerator для создания .Exe, который вызывает метод из DLL. Моя проблема в том, что когда это метод экземпляра, я должен поместить экземпляр в стек перед вызовом метода. Поэтому у меня есть метод на С#, который создает и...
270 просмотров
schedule 14.04.2022

Оптимизирован ли IL, сгенерированный деревьями выражений?
Хорошо, это просто любопытство, не помогает в реальном мире. Я знаю, что с деревьями выражений вы можете генерировать MSIL на лету, как это делает обычный компилятор C#. Поскольку компилятор может определять оптимизацию, у меня возникает соблазн...
2249 просмотров

Каково максимальное количество методов на класс .NET
Заголовок, на самом деле, говорит сам за себя, но все же, для полноты картины: Привет, я пишу небольшой инструмент пост-компиляции на платформе .NET, и, пытаясь его оптимизировать, я столкнулся с вопросом, на который не могу легко найти ответ в...
1029 просмотров
schedule 14.05.2022

DynamicMethod намного медленнее, чем скомпилированная функция IL.
Я написал простой копировщик объектов, который копирует общедоступные свойства. Я не могу понять, почему динамический метод намного медленнее, чем версия С#. Продолжительность Метод С#: 4963 мс Динамический метод: 19 924 мс Обратите...
3826 просмотров
schedule 24.05.2022

IL, вараги и ExcelDNA
Контекст: Windows 7, ExcelDNA 0.30, .NET 4.0 Я все еще пытаюсь заставить работать params/ParamArray в Excel через ExcelDNA. Используя varags, я избегаю всего, что связано с System.ParamArrayAttribute, и иду по пути с System.ArgIterator....
391 просмотров

Невозможно запустить ILAsm с помощью ProcessInfo
Я пытаюсь скомпилировать код IL, используя файл bat и С#. Вот код С# ProcessStartInfo processStartInfo = new ProcessStartInfo(ILCompiler, @"c:\Windows\Microsoft.NET\Framework\v4.0.30319\" + ILCompiler + " "+OutILFile+" /exe /output:" +...
969 просмотров
schedule 20.06.2022

ИЛ и аргументы
В IL есть несколько опкодов для работы с аргументами, например Ldarg.0 , Ldarg.1 и так далее. Я знаю, что эти аргументы помещаются в стек перед выполнением кода операции call , в некоторых случаях Ldarg.0 используется для получения ссылки на...
3452 просмотров
schedule 27.06.2022

IL Emit TypeBuilder и разрешение ссылок
Я испускаю несколько классов, некоторые из которых должны создавать своих сверстников в своих собственных конструкторах. Нет бесконечных рекурсивных зависимостей (поэтому, если A создает B, B не будет создавать A; это верно и для вложенных ссылок [A...
458 просмотров
schedule 13.07.2022

Stackoverflow делает бокс на C#
У меня есть эти два фрагмента кода на С#: Первый class Program { static Stack<int> S = new Stack<int>(); static int Foo(int n) { if (n == 0) return 0; S.Push(0); S.Push(1); ......
2144 просмотров
schedule 18.07.2022

Как загрузить статическое поле?
Я создаю тип со статическими полями num1, num2 и т. д. через Reflection.Emit. Теперь я не знаю, как создать код, который загружает содержимое статического поля в сгенерированном типе в стек оценки статического метода. Что я пробовал до сих пор:...
789 просмотров
schedule 13.08.2022

Как выдать OpCodes.Constrained с OpCodes.Callvirt, если у меня есть необходимая MethodInfo и тип экземпляра
У меня есть рекурсивная функция emit : Map<string,LocalBuilder> -> exp -> unit , где il : ILGenerator является глобальным для функции, а exp является дискриминантным объединением, представляющим анализируемый язык с проверкой типов с...
2727 просмотров
schedule 18.09.2022

Инструкция CIL unbox_any - странное поведение
.method public static void Test<class T>(object A_0) cil managed { // Code size 13 (0xd) .maxstack 1 .locals init (!!T V_0) IL_0000: ldarg.0 IL_0001: isinst !!T IL_0006: unbox.any !!T IL_000b: stloc.0 IL_000c:...
309 просмотров
schedule 19.09.2022

Что делают операционные коды префикса IL?
Я экспериментировал с IL и заметил такие опкоды, как Prefix1 , и документация в основном говорит мне не беспокоиться об этом. Естественно, мне стало очень любопытно, что на самом деле делают эти различные префиксные опкоды. Быстрый поиск в Google...
506 просмотров
schedule 25.03.2023