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

Вопрос MSIL (базовый)
Хорошо, скажем, у нас есть этот код С#: public override void Write(XDRDestination destination) { destination.WriteInt(intValue); destination.WriteBool(boolValue); destination.WriteFixedString(str1, 100);...
1091 просмотров
schedule 25.12.2022

Что вы порекомендуете для хорошей книги по .NET CLR и CIL?
Знаете ли вы какую-нибудь хорошую книгу о работе CLR, .NET Framework и CIL в отличие от любого конкретного языка .NET?
3352 просмотров
schedule 05.07.2022

Генерация IL для двойных массивов
Я пишу некоторые институты IL для создания массивов int и double с использованием пространства имен System.Reflection.Emit. Для создания массива int я использую следующий код. LocalBuilder arr = gen.DeclareLocal(typeof(int));...
2316 просмотров
c# il
schedule 30.05.2023

ILDASM в папке x64
Я использую ildasm.exe (для просмотра сборок .NET) из местоположения: C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v7.0A \ Bin Но в подпапке есть еще один файл ildasm.exe: C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v7.0A \...
483 просмотров
schedule 13.03.2023

C# Reflection IL — понимание того, как значения копируются
Я пытаюсь улучшить производительность определенной части моей программы, которая включает в себя глубокое клонирование одного и того же графа объектов снова и снова в нескольких потоках. В настоящее время я использую сериализацию, которая является...
2244 просмотров
schedule 06.05.2023

Почему MSFT C# компилирует фиксированный массив, чтобы по-разному указывать затухание и адрес первого элемента?
Компилятор .NET c# (.NET 4.0) компилирует оператор fixed довольно своеобразным способом. Вот короткая, но полная программа, чтобы показать вам, о чем я говорю. using System; public static class FixedExample { public static void Main() {...
749 просмотров
schedule 05.05.2022

Испускание вызова функции делегата
У меня есть следующий код С#: public static double f2(Func<double, double> f, double x) { return f(x); } А вот и IL-код: .method public hidebysig static float64 f2 ( class [mscorlib]System.Func`2<float64,...
2844 просмотров
schedule 05.11.2022

Указанный приведение недействительно только в сборке выпуска из сборки MS.
Я получаю сообщение «Указанное приведение недействительно» при выполнении только сборки выпуска из MSBuild 4.0. Я проверил это, используя сборку выпуска Visual Studio 2012, и не получил этой проблемы. Я также проверил это с помощью отладочной сборки...
1684 просмотров
schedule 05.04.2022

Связана ли производительность IL с размером кода?
При взгляде на промежуточный язык каждая инструкция имеет определенный размер байта. Если у меня есть метод с общим размером кода (сумма размеров инструкций) 10 байт и метод с общим размером кода 20 байт, могу ли я предположить, что первый...
102 просмотров
schedule 03.07.2023

Как понять, что имя класса добавляет символ ‹›?
Как понять этот код на C#? using System; internal class <Module> { } Имя класса не может содержать символ <> , но разрешено ли его наличие в коде? Как бы вы этого добились? И как понять эту разницу? Взгляните на этот код:...
955 просмотров
c# il
schedule 18.04.2023

Должен ли я пытаться использовать константную строку вместо строки, где это возможно?
Рассмотрим эти три примера: Пример А string message = "Hello world!"; throw new System.Exception(message); Пример Б const string message = "Hello world!"; throw new System.Exception(message); Пример С throw new...
127 просмотров
schedule 05.04.2022

CA2202: не удалять объекты несколько раз
У меня такой класс... public class Class1 { public Class1() { byte[] plainText = new byte[1024]; using (MemoryStream msEncrypt = new MemoryStream()) { using (CryptoStream csEncrypt = new...
1868 просмотров
schedule 05.10.2023

Метод создания LCG для установки подмножества всех свойств в классе (замена отражения; С#)
Сценарий: у меня есть этот класс public class Person { public string FirstName { get; set; } public string LastName { get; set; } public int Age { get; set; } } Пользователь может выбрать только, например, FirstName и Age ....
32 просмотров
schedule 14.06.2023

Как использовать ilasm с релиз-режимом
Я хотел бы использовать ilasm для компиляции кода il. Есть довольно много параметров, которые я могу использовать. В Visual Studio я могу просто поставить галочку «Оптимизировать код» в настройках проекта. Как я могу включить компилятор ilasm для...
188 просмотров
schedule 11.07.2023

Присвоение значения строке из базового типа через конструктор с использованием TypeBuilder
Я пытаюсь программно определить класс с базовым классом и конструктором, который вызывает базовый конструктор. Частью работы конструктора подкласса является инициализация строки с именем name со значением. Но что бы я ни пробовал, имя остается...
89 просмотров
schedule 10.03.2022

Как определить тип массива?
У меня есть исключение OutOfMemoryException, и я хотел бы проанализировать размер и тип создаваемого массива. Я создал демонстрационный дамп для этой ситуации и могу получить следующую информацию: 0:000> !pe Exception object: 023f389c...
471 просмотров
schedule 09.11.2022

Почему ILGenerator вставляет инструкцию Leave в оператор Foreach
Я генерирую следующий код: public override void Map(IEnumerable enumerable1) { List<int> list = new List<int>(); foreach (object obj2 in enumerable1) { } } через Emit Вот полный код: MethodBuilder...
713 просмотров
schedule 02.05.2022

Почему x86 JIT умнее, чем x64?
Я запускаю очень простую программу static void Main(string[] args) { Console.WriteLine(Get4S()); Console.WriteLine(Get4()); } private static int Get4S() { return 4; } private static int Get4()...
748 просмотров
schedule 03.07.2022

Создать копию метода из IL
Я пытаюсь создать копию метода во время выполнения, используя отражение. У меня есть следующий код. public static R CopyMethod<T, R>(Func<T, R> f, T t) { AppDomain currentDom = Thread.GetDomain(); AssemblyName asm = new...
1911 просмотров