Is this an appropriate way to handle c# switch statements or is an explicit break required still? reference
public static string ToRegistryString(AliceKey.AliceKeyPaths aliceKeyPath)
{
switch (aliceKeyPath)
{
case AliceKey.AliceKeyPaths.NET_CLR_DATA:
return @"\.NET CLR Data\";
case AliceKey.AliceKeyPaths.NET_CLR_NETWORKING:
return @"\.NET CLR Networking\";
case AliceKey.AliceKeyPaths.NET_DATA_PROVIDER_MSSQL:
return @"\.NET Data Provider for SqlServer\";
case AliceKey.AliceKeyPaths.NET_DATA_PROVIDER_ORACLE:
return @"\.NET Data Provider for Oracle\";
}
return new string(new char[0]);
}
That’s fine. The point is that the end of a case block should be unreachable – which it is here, because you’ve returned.
Why are you returning
new string(new char[0])rather than just “” orstring.Emptythough? If you’re trying to make sure it’s a different string each time, you’ll actually run into a very weird corner case – despite callingnew string(...)that code will always actually return the same reference…Finally: I would actually suggest changing this switch/case block into just a
Dictionary<AliceKey.AliceKeyPaths, string>: