Почему нету потери имен при компиляции C# приложения?
Формулировка задачи:
Собственно, вопрос. Есть исходник, скомпилировали, декомпилировали - все имена, названия перменных и тд сохранились....
Зачем это нужно, умышленная потеря безопасности или в этом есть сакральный смысл?
Почему компилятор C# берет именно названия переменных и их, и использует в IL? Неужели нельзя сделать так, чтобы он подтирал не нужную информацию (да и оптимизация своего рода получится) о том, как названа переменная (ведь по сути это и не важно, да хоть lsjfoISDJFejls будет называться), без применения обфускатора?
Ведь получается, что если и используются эти имена, то производительность вот такой штуки:
будет меньше, вот такой:
,а если не используется....то зачем тогда сохранять оригинальное имя, если в процессе работы программы оно не будет использоваться? (память то лишняя ладно, но безопасность то страдает)
while(My_very_long_name_for_function_what_return_some_value_for_while_in_my_application1()) { dosomething(); } while(My_very_long_name_for_function_what_return_some_value_for_while_in_my_application2()) { dosomething();dosomething();dosomething(); }
while(f1()) { dosomething(); } while(f2()) { dosomething();dosomething();dosomething(); }
Решение задачи: «Почему нету потери имен при компиляции C# приложения?»
textual
Листинг программы
Foo(10, "Hello");
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д