41
A
回答
58
如果它爲空,它將會打到默認標籤。
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;
}
}
}
該程序將打印default
。
除非空值被處理。
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;
}
}
}
打印NULL
。
如果您有以後增加了未處理的枚舉值:
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;
}
}
}
它仍然打印default
。
+0
這是我喜歡C#而不是Java的原因之一。 – 2016-08-11 07:30:15
0
您可以使用空合併運算??
路由null
開關值以外default
一個具體案例標籤:
public static IEnumerable<String> AsStrings(this IEnumerable<Char[]> src)
{
Char[] rgch;
var e = src.GetEnumerator();
while (e.MoveNext())
{
switch ((rgch = e.Current)?.Length ?? -1)
{
case -1: // <-- value when e.Current is 'null'
yield return null;
break;
case 0:
yield return String.Empty;
break;
case 1:
yield return String.Intern(new String(rgch[0], 1));
break;
default: // 2...n
yield return new String(rgch);
break;
}
}
}
相關問題
- 1. 的Java枚舉switch語句
- 2. Switch語句不會默認
- 3. switch語句C++ [默認部分]
- 4. 處理switch語句
- 5. switch語句:數枚舉值/ 1002 = MyEnum.NewYorkID
- 6. PowerMockito枚舉在Switch語句拋出NPE
- 7. C#:爲什麼在一個switch語句?枚舉是整數
- 8. 枚舉默認值理解
- 9. 如何進行單元測試的基於枚舉switch語句
- 10. 如何處理自選switch語句中
- 11. .NET C#switch語句字符串比較與枚舉比較
- 12. 使用switch語句常量或枚舉? (哪個更好)? C#
- 13. 如何使用枚舉生成switch語句框架
- 14. 枚舉和結構代替C語言中的switch語句的用法
- 15. 如何枚舉用戶的默認組?
- 16. switch語句不是案件或默認
- 17. 排序默認情況下switch語句
- 18. Javascript switch語句 - 默認第一次OK?
- 19. 編譯時斷言,當不是所有的枚舉值在C++中的switch語句中處理
- 20. switch語句中的默認情況是否可選?
- 21. 使用枚舉和switch語句中的一類
- 22. Swift - 從switch語句中的字符串初始化枚舉
- 23. c switch語句
- 24. 當聲明爲內部類時,switch語句中枚舉值的行爲
- 25. C#枚舉:可爲空或「未知」值?
- 26. C#枚舉 - 是否爲空?
- 27. Thrift默認枚舉值
- 28. 解析爲可空枚舉
- 29. 通用可爲空枚舉
- 30. 應如何處理.Net IList的枚舉?
嘗試在這裏:http://ideone.com/ – CloudyMarble 2013-02-19 05:36:40
C#語言規範, 8.7.2「switch語句」。 http://msdn.microsoft.com/en-us/library/ms228593.aspx – Dennis 2013-02-19 05:44:03