Эта процедура действительно должна быть однострочной, как:
Registry.LocalMachine.DeleteSubKey (@ "SYSTEM \ ControlSet ... \ etc ...");
Вам не нужно открывать объект RegistryKey, потому что Registry.LocalMachine отчасти уже открыт для вас.
Если вам нужно открыть объект RegistryKey, чтобы сделать что-то еще, знайте, что RegistryKey реализует IDisposable, поэтому теперь, когда вы создали объект, вы несете ответственность за его удаление независимо от того, что. Таким образом, вы должны окружить ваш код try {...} и вызвать Dispose () в блоке finally . К счастью, это можно кодировать в C # более элегантно, используя , используя :
using( RegistryKey key = Registry.LocalMachine.OpenSubKey(...) ) {
...
}