170 похожих чатов

Минутка бесполезных вопросов из любопытства Можно ли сделать так, чтобы const

поля класса при компиляции удалялись?
Тип, он же и так заменяет везде ссылки на это поле на его значение, зачем мне скомпилинное поле ещё?

12 ответов

0 просмотров

А чем тебе мешает наличие .field public static literal ? Оно не занимает память итд. По сути это чисто для рефлексии метаданные. Вот даже нашёл пруф I.8.6.1.2 Location signatures https://www.ecma-international.org/wp-content/uploads/ECMA-335_6th_edition_june_2012.pdf краткий ответ Нет. Так как это есть в спеке.

Andrew-Shurunov Автор вопроса
Peter Mazin
А чем тебе мешает наличие .field public static lit...

Просто любопытно было Но спасибо за хороший ответ

Они удалятся и вместо них адрес подставится. С чего ты решил что при компиляции они остаются?)

Andrew-Shurunov Автор вопроса
Andrey Filippov
Они удалятся и вместо них адрес подставится. С чег...

Класс остаётся, для рефлексий и подобного Я это проверил сначала, а выше мне и ссылку на стандарт кинули, где описывается это

Andrew-Shurunov Автор вопроса
Andrey Filippov
Класс останется без константы

Будет передаваться как адрес, но поле все равно останется

Andrew Shurunov
Будет передаваться как адрес, но поле все равно ос...

Где? using System; public class C { public const string Test = "test"; public void M() { Console.WriteLine(Test); } } ; Core CLR v5.0.321.7212 on x86 C..ctor() L0000: ret C.M() L0000: mov ecx, [0xf52ecf4] L0006: call System.Console.WriteLine(System.String) L000b: ret

можно, напиши свой weaver для fody, который удаляет все константы

Andrew-Shurunov Автор вопроса
Andrey Filippov
Где? using System; public class C { publi...

В IL есть. В асме вероятне его не будет, ведь нет нужды компилить этот класс

Andrew-Shurunov Автор вопроса
Nikita Tsukanov
можно, напиши свой weaver для fody, который удаляе...

Ну да, как вариант Если совсем уж запариться

Andrew Shurunov
В IL есть. В асме вероятне его не будет, ведь нет ...

Ну вот. Значит проблемы нет. И беспокоиться не надо

Andrey Filippov
Они удалятся и вместо них адрес подставится. С чег...

Остаются, чтобы можно было их использовать в референсах.

Похожие вопросы

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
52
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
буквально один оставшийся вопрос при выполнении строчки mov eax, 5 операнд "5" будет присутствовать где-либо в памяти (любой), кроме как в памяти блока .code? подвопрос: как...
12
Всем ку. Подскажите, если задекларировал массив так: int arr[10] = {1, 2, 3, 4}, то в arr[4] будет мусор или нуль?
Sasha K
14
я не понимаю mov [r11+8],rcx и прочие. мы записываем значение из rcx, куда?
Bor
15
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
у меня такой вопрос про память в x86 возник, может кто пояснить?.. у процессора есть (как минимум) 3 типа адресов (названия "п1", "п2", "п3" --- мои, чтобы проще было дальше)...
Toideng
5
А какие расширения активно используются в промышленности? Именно идейные, по типу гадт, а не всякие оверлоадедстрингс
Степан
11
у процессора есть (как минимум) 3 типа адресов (названия "п1", "п2", "п3" --- мои, чтобы проще было дальше): - "п1" --- виртуальный адрес, то есть тот, который ресолвится в "п...
Toideng
3
Guys Who’s kurdish on this group?
Hiwa Amiri
11
Карта сайта