C# 中switch和case如何使用

发布时间:2021-07-08 14:17:58 作者:Leah
来源:亿速云 阅读:179

今天就跟大家聊聊有关C# 中switch和case如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

  1. public static class SwithCaseExtension  

  2. {  

  3. SwithCase#region SwithCase  

  4. public class SwithCase<TCase, TOther> 

  5. {  

  6. public SwithCase(TCase value, Action<TOther> action)  

  7. {  

  8. Value = value;  

  9. Action = action;  

  10. }  

  11. public TCase Value { get; private set; }  

  12. public Action<TOther> Action { get; private set; }  

  13. }  

  14. #endregion  

  15.  

  16. Swith#region Swith  

  17. public static SwithCase<TCase, TOther> Switch<TCase, TOther>
    (this TCase t, Action<TOther> action) where TCase : IEquatable<TCase> 

  18. {  

  19. return new SwithCase<TCase, TOther>(t, action);  

  20. }  

  21.  

  22. public static SwithCase<TCase, TOther> Switch<TInput, TCase, TOther>
    (this TInput t, Func<TInput, TCase> selector, Action<TOther> action)
    where TCase : IEquatable<TCase> 

  23. {  

  24. return new SwithCase<TCase, TOther>(selector(t), action);  

  25. }  

  26. #endregion  

  27.  

  28. Case#region Case  

  29. public static SwithCase<TCase, TOther> Case<TCase, TOther>
    (this SwithCase<TCase, TOther> sc, TCase option, TOther other) 
    where TCase : IEquatable<TCase> 

  30. {  

  31. return Case(sc, option, other, true);  

  32. }  

  33.  

  34. public static SwithCase<TCase, TOther> Case<TCase, TOther>
    (this SwithCase<TCase, TOther> sc, TCase option, TOther other, bool bBreak)
    where TCase : IEquatable<TCase> 

  35. {  

  36. return Case(sc, c=>c.Equals(option), other, bBreak);  

  37. }  

  38.  

  39. public static SwithCase<TCase, TOther> Case<TCase, TOther>
    (this SwithCase<TCase, TOther> sc, Predicate<TCase> predict, TOther other) 
    where TCase : IEquatable<TCase> 

  40. {  

  41. return Case(sc, predict, other, true);  

  42. }  

  43.  

  44. public static SwithCase<TCase, TOther> Case<TCase, TOther>
    (this SwithCase<TCase, TOther> sc, Predicate<TCase> predict,
    TOther other, bool bBreak) where TCase : IEquatable<TCase> 

  45. {  

  46. if (sc == null) return null;  

  47. if (predict(sc.Value))  

  48. {  

  49. sc.Action(other);  

  50. return bBreak ? null : sc;  

  51. }  

  52. else return sc;  

  53. }  

  54. #endregion  

  55.  

  56. Default#region Default  

  57. public static void Default<TCase, TOther>
    (this SwithCase<TCase, TOther> sc, TOther other)  

  58. {  

  59. if (sc == null) return;  

  60. sc.Action(other);  

  61. }  

  62. #endregion  

看完上述内容,你们对C# 中switch和case如何使用有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

推荐阅读:
  1. C#里面的Switch分支结构的使用
  2. C#中default指的是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

switch case

上一篇:Spring如何整合Quartz Job以及Spring Task

下一篇:c# 中如何使用listbox控件

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》