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

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

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

12 ответов

10 просмотров

А чем тебе мешает наличие .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
Они удалятся и вместо них адрес подставится. С чег...

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

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта