Вопросы с тегом «cil»

Common Intermediate Language - это объектно-ориентированный язык ассемблера, используемый .NET Framework, .NET Core и Mono. Языки .NET компилируются в CIL, который собирается в объектный код, имеющий формат в стиле байт-кода.

7
Какова цель стека? Зачем нам это нужно?
Поэтому я сейчас изучаю MSIL, чтобы научиться отлаживать мои приложения на C # .NET. Я всегда задавался вопросом: какова цель стека? Просто чтобы поставить мой вопрос в контексте: почему происходит перенос из памяти в стек или «загрузка»? С другой стороны, почему происходит перенос из стека в память или «сохранение»? Почему …
320 c#  .net  vb.net  cil  .net-assembly 

20
Что вы можете сделать в MSIL, что вы не можете сделать в C # или VB.NET? [закрыто]
В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, вновь открыть, обратитесь за …
165 c#  .net  clr  cil 

1
Почему компилятор C # переводит это сравнение =, как если бы это было сравнение?
Я случайно обнаружил, что компилятор C # превращает этот метод: static bool IsNotNull(object obj) { return obj != null; } ... в этот CIL : .method private hidebysig static bool IsNotNull(object obj) cil managed { ldarg.0 // obj ldnull cgt.un ret } ... или, если вы предпочитаете смотреть на декомпилированный …
147 c#  cil  il  notnull  binary-operators 

5
Виртуальная машина Java и среда CLR
Как своего рода продолжение вопроса под названием « Различия между байт-кодом MSIL и Java»? , каковы (основные) различия или сходства в том, как работает виртуальная машина Java, по сравнению с тем, как.NET Framework Common Language Runtime (CLR) работает? Кроме того, .NET Framework CLR - это «виртуальная машина» или у нее …


3
Почему этот (null ||! TryParse) условный результат приводит к «использованию неназначенной локальной переменной»?
Следующий код приводит к использованию неназначенной локальной переменной numberOfGroups : int numberOfGroups; if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups)) { numberOfGroups = 10; } Однако этот код работает нормально (хотя ReSharper говорит, что = 10он избыточен): int numberOfGroups = 10; if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups)) { numberOfGroups = …

4
Странное увеличение производительности в простом тесте
Вчера я нашел статью Кристофа Нара под названием «.NET Struct Performance», в которой тестировался тест нескольких языков (C ++, C #, Java, JavaScript) для метода, который добавляет двухточечные структуры ( doubleкортежи). Как выяснилось, версия C ++ занимает около 1000 мс для выполнения (итерация 1e9), в то время как C # …

3
Какова цель hidebysig в ​​методе MSIL?
Используя ildasm и программу C #, например static void Main(string[] args) { } дает: .method private hidebysig static void Main(string[] args) cil managed { .entrypoint // Code size 2 (0x2) .maxstack 8 IL_0000: nop IL_0001: ret } // end of method Program::Main Что делает конструкция hidebysig?
92 cil 


7
Есть ли объяснение встроенным операторам в «k + = c + = k + = c;»?
Чем объясняется результат следующей операции? k += c += k += c; Я пытался понять результат вывода следующего кода: int k = 10; int c = 30; k += c += k += c; //k=80 instead of 110 //c=70 и в настоящее время я изо всех сил пытаюсь понять, почему …

19
Какова цель кода операции CIL nop?
Я просматриваю MSIL и замечаю, что в MSIL есть много инструкций nop . В статье MSDN говорится, что они не предпринимают никаких действий и используются для заполнения пространства, если код операции исправлен. Они гораздо чаще используются в отладочных сборках, чем в сборках выпуска. Я знаю, что такие операторы используются в …
82 assembly  bytecode  cil 

2
Что делает флаг beforefieldinit?
Что делает флаг beforefieldinit? Когда я смотрю в IL своего класса, я вижу этот флаг, но я не знаю, что он на самом деле делает?
82 .net  cil 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.