Запитання з тегом «cil»

Загальна проміжна мова - це об’єктно-орієнтована мова асемблерів, яка використовується .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 Загальна мовна робота (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
Яка мета приховування в методі 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 і , помітивши , що є багато NOP інструкцій в MSIL. У статті MSDN сказано, що вони не вживають жодних дій і використовуються для заповнення місця, якщо код коду виправлений. Вони використовуються набагато більше у збірках налагодження, ніж у збірках випусків. Я знаю, що такі оператори …
82 assembly  bytecode  cil 

2
Що робить прапор beforefieldinit?
Що робить прапор beforefieldinit? Коли я заглядаю в ІЛ свого класу, то бачу цей прапор, але не знаю, що насправді робить цей прапор?
82 .net  cil 

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.