Отлично.Дело в том, что конец блока case должен быть недоступен - что он здесь, потому что вы вернулись.
Почему вы возвращаете new string(new char[0])
, а не просто "" или string.Empty
, хотя?Если вы пытаетесь каждый раз убедиться, что это другая строка, вы действительно столкнетесь с очень странным угловым случаем - несмотря на вызов new string(...)
, этот код всегда будет возвращать одну и ту же ссылку ...
Наконец: я бы предложил изменить этот блок переключателей / регистров на 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 : "";
}