Ответ 1
Это хорошо. Дело в том, что конец блока case должен быть недоступен - он здесь, потому что вы вернулись.
Почему вы возвращаете new string(new char[0])
, а не только "" или string.Empty
? Если вы каждый раз пытаетесь сделать это по-разному, вы на самом деле столкнулись с очень странным угловым случаем - несмотря на вызов new string(...)
, этот код всегда будет возвращать ту же ссылку...
Наконец: я бы предпочел изменить этот блок switch/case только на Dictionary<AliceKey.AliceKeyPaths, string>
:
private static readonly Dictionary<AliceKey.AliceKeyPaths, string> RegistryMap =
new Dictionary<AliceKey.AliceKeyPaths, string>
{
{ AliceKey.AliceKeyPaths.NET_CLR_DATA, @"\.NET CLR Data\" },
{ AliceKey.AliceKeyPaths.NET_CLR_NETWORKING, @"\.NET CLR Networking\" },
// etc
};
public static string ToRegistryString(AliceKey.AliceKeyPaths aliceKeyPath)
{
string value;
return RegistryMap.TryGetValue(aliceKeyPath, out value) ? value : "";
}