今天就跟大家聊聊有关C# 中switch和case如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
public static class SwithCaseExtension { SwithCase#region SwithCase public class SwithCase<TCase, TOther> { public SwithCase(TCase value, Action<TOther> action) { Value = value; Action = action; } public TCase Value { get; private set; } public Action<TOther> Action { get; private set; } } #endregion Swith#region Swith public static SwithCase<TCase, TOther> Switch<TCase, TOther>(this TCase t, Action<TOther> action) where TCase : IEquatable<TCase> { return new SwithCase<TCase, TOther>(t, action); } public static SwithCase<TCase, TOther> Switch<TInput, TCase, TOther>(this TInput t, Func<TInput, TCase> selector, Action<TOther> action)where TCase : IEquatable<TCase> { return new SwithCase<TCase, TOther>(selector(t), action); } #endregion Case#region Case public static SwithCase<TCase, TOther> Case<TCase, TOther>(this SwithCase<TCase, TOther> sc, TCase option, TOther other) where TCase : IEquatable<TCase> { return Case(sc, option, other, true); } public static SwithCase<TCase, TOther> Case<TCase, TOther>(this SwithCase<TCase, TOther> sc, TCase option, TOther other, bool bBreak)where TCase : IEquatable<TCase> { return Case(sc, c=>c.Equals(option), other, bBreak); } public static SwithCase<TCase, TOther> Case<TCase, TOther>(this SwithCase<TCase, TOther> sc, Predicate<TCase> predict, TOther other) where TCase : IEquatable<TCase> { return Case(sc, predict, other, true); } public static SwithCase<TCase, TOther> Case<TCase, TOther>(this SwithCase<TCase, TOther> sc, Predicate<TCase> predict,TOther other, bool bBreak) where TCase : IEquatable<TCase> { if (sc == null) return null; if (predict(sc.Value)) { sc.Action(other); return bBreak ? null : sc; } else return sc; } #endregion Default#region Default public static void Default<TCase, TOther>(this SwithCase<TCase, TOther> sc, TOther other) { if (sc == null) return; sc.Action(other); } #endregion }
看完上述内容,你们对C# 中switch和case如何使用有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。