Se è nullo, verrà applicata l'etichetta predefinita.
public enum YesNo
{
Yes,
No,
}
public class Program
{
public static void Main(string[] args)
{
YesNo? value = null;
switch (value)
{
case YesNo.Yes:
Console.WriteLine("Yes");
break;
case YesNo.No:
Console.WriteLine("No");
break;
default:
Console.WriteLine("default");
break;
}
}
}
Il programma stamperà default
.
A meno che non venga gestito nulla.
public class Program
{
public static void Main(string[] args)
{
YesNo? value = null;
switch (value)
{
case YesNo.Yes:
Console.WriteLine("Yes");
break;
case YesNo.No:
Console.WriteLine("No");
break;
case null:
Console.WriteLine("NULL");
break;
default:
Console.WriteLine("default");
break;
}
}
}
stampe NULL
.
Se si dispone di un valore di enumerazione non gestita che è stato aggiunto in seguito:
public enum YesNo
{
Yes,
No,
FileNotFound,
}
public class Program
{
public static void Main(string[] args)
{
YesNo? value = YesNo.FileNotFound;
switch (value)
{
case YesNo.Yes:
Console.WriteLine("Yes");
break;
case YesNo.No:
Console.WriteLine("No");
break;
default:
Console.WriteLine("default");
break;
}
}
}
Esso stampa ancora default
.
fonte
2013-02-19 05:33:23
Prova qui: http://ideone.com/ – CloudyMarble
C# Specifiche del linguaggio, 8.7.2 "L'istruzione switch". http://msdn.microsoft.com/en-us/library/ms228593.aspx – Dennis