c# instruction switch est de retour approprié pour remplacer pause
Est-ce une façon appropriée de gérer c# instructions de commutation ou explicite d'une pause nécessaire encore? référence
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]);
}
- Au lieu de mettre "return new string(new char[0]);" à l'extérieur de l'instruction switch vous pouvez également utiliser le "default: return new string(new char[0]);" l'affaire après tous les autres cas. Ce sera une manière plus propre d'utiliser l'instruction Switch.
Vous devez vous connecter pour publier un commentaire.
C'est très bien. Le point est que la fin d'un bloc doit être inaccessible - ce qui est ici, parce que vous avez retourné.
Pourquoi êtes-vous de retour
new string(new char[0])
plutôt que de "simplement" oustring.Empty
si? Si vous essayez de faire sûr que c'est une chaîne de caractère à chaque fois, vous allez vraiment vous lancer dans un très étrange cas de coin - malgré l'appel denew string(...)
que le code sera toujours fait retour à la même référence...Enfin: en fait, je peux suggérer de changer ce switch/case bloquer en
Dictionary<AliceKey.AliceKeyPaths, string>
:Vous n'avez pas besoin d'utiliser un
break
déclaration qui vient d'un changement qui modifie le flux de contrôle, de sorte qu'ungoto
ou unreturn
devrait fonctionner.Voir MSDN pour plus d'info: http://msdn.microsoft.com/en-us/library/06tc147t(SV.71).aspx