Вопросы по теме '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 просмотров
schedule
23.11.2021
Как изучить 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 просмотров
schedule
17.04.2022
Каково максимальное количество методов на класс .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 просмотров
schedule
31.05.2022
Невозможно запустить 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