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. Java擴展枚舉的switch語句
- 4. C++ switch語句。默認不起作用
- 5. switch語句C++ [默認部分]
- 6. Switch語句不會默認
- 7. 處理switch語句
- 8. switch語句:數枚舉值/ 1002 = MyEnum.NewYorkID
- 9. PowerMockito枚舉在Switch語句拋出NPE
- 10. C#:爲什麼在一個switch語句?枚舉是整數
- 11. 枚舉默認值理解
- 12. C++使用特定的類和枚舉範圍switch語句中
- 13. 如何進行單元測試的基於枚舉switch語句
- 14. 爲什麼我的枚舉不能在switch語句中工作?
- 15. 如何處理自選switch語句中
- 16. 使用switch語句常量或枚舉? (哪個更好)? C#
- 17. .NET C#switch語句字符串比較與枚舉比較
- 18. 如何使用枚舉生成switch語句框架
- 19. 處理枚舉默認值作爲動作參數
- 20. 枚舉和結構代替C語言中的switch語句的用法
- 21. 如何枚舉用戶的默認組?
- 22. switch語句只執行默認
- 23. Javascript switch語句 - 默認第一次OK?
- 24. Switch語句。使用默認情況下
- 25. 排序默認情況下switch語句
- 26. switch語句不是案件或默認
- 27. 枚舉默認的UWP ThemeResources
- 28. 帶有詳盡列表的switch語句:默認標籤是否相關?
- 29. Jquery Switch語句的Javascript標籤
- 30. 編譯時斷言,當不是所有的枚舉值在C++中的switch語句中處理
嘗試在這裏: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