すべてのルートキーの名前を文字列として含むドロップダウンリストからサブキー値をリストボックスに入力しようとしています。デフォルトフィールドを削除するたびに、「割り当てられていないローカル変数 'rk' の使用」というエラーが表示されます。
示されているようにデフォルトを追加すると、常にデフォルト値、つまり currentconfig キーが選択され、ドロップダウン エントリの変更を呼び出しても変更されません。デフォルトフィールドにも例外を提供しようとしましたが、それも役に立ちませんでした。
ここで何が間違っていますか?
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string x = comboBox1.SelectedText;
RegistryKey rk;
switch(x)
{
case "Classes Root":
rk = Registry.ClassesRoot;
break;
case "Current User":
rk = Registry.CurrentUser;
break;
case "Local Machine":
rk = Registry.LocalMachine;
break;
case "Users":
rk = Registry.Users;
break;
case "Current Config":
rk = Registry.CurrentConfig;
break;
default:
rk = Registry.CurrentConfig;
break;
}
String[] names = rk.GetSubKeyNames();
listBox1.DataSource = names;
}