Локальные переменные хранятся на стекле, и им выделяется конкретное место. В случае
int my_number = 10;
my_number = 20;
Перезапишется значение на стеке.
Да и нникаких оптимизаций при компиляции в байт код не делается, это делает JIT и то при release сборке. Все ненужные присваивания и неиспользуемые переменные выкидываются.
Еще как используется, среди всего приложения, как контроллеры ищутся?
Раньше рефлексия пользовалась для сериализации, десериализации, маперов классов и подобного, го рефлексия это настолько медленная штука, что от нее отошли.
В принципе, это мощный инструмент, в умелых руках, но вам пока туда рано. Как сказал Николай Савельев
var s="1,2,3,4,5,6,7,8,9";
var pairs=s.Split(',').Select(Int32.Parse).Where(w => w%2==0).ToArray();
var notpairs=s.Split(',').Select(Int32.Parse).Where(w => w%2!=0).ToArray();
соответственно массив pairs содержит парные, notpairs не парные, ну проверить chekbox и от него плясать уж сами сделайте.
Весь прикол в том, что excel делает один процесс на все таблицы открытые. В отличии от word.
Как бы вот нашел
Edit the Registry
Now we’re set to go. To edit the registry:
First, close all instances of Excel.
Open the Registry Editor (as explained in the backup step).
Go to HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Excel\Options.
Click Edit in the menu, press New, and select DWORD value.
Adding a DWORD Value in the Registry Editor
Name the entry ‘DisableMergeInstance’, press enter.
Right-click the entry DisableMergeInstance, and select Modify.
In the Value data box, fill in 1, and click OK.
Заведите ещё свойство Parent на родительский узел. Тогда при удалении, можно обратиться к родительской и удалить узел из ее свойств, чтобы не обходить дерево.
Вы сразу напрямую в таблицу из файла грузите данные?
Я бы создал класс-сущность, которая ваши данные описывает, потом из файла сереализовал бы данные в список, через linq делал бы выбор, и фильтрованый список через DataSource grid`а привязывал бы.