亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#、ASP.NET通用擴展工具類之LogicSugar

2020-01-24 01:46:27
字體:
來源:轉載
供稿:網友

說明一下性能方面 還可以接受 循環1000次普通Switch是用了0.001秒 ,擴展函數為0.002秒  , 如果是大項目在有負載均衡的情況下完全可以無視掉,小項目也不會計較這點性能了。

 注意需要引用 “SyntacticSugar”

用法:

//【Switch】string bookKey = "c#"; //以前寫法string myBook = "";switch (bookKey){  case "c#":    myBook = "asp.net技術";    break;  case "java":    myBook = "java技術";    break;  case "sql":    myBook = "mssql技術";    break;  default:    myBook = "要飯技術";    break;//打這么多break和封號,手痛嗎?} //現在寫法myBook =bookKey.Switch().Case("c#", "asp.net技術").Case("java", "java技術").Case("sql", "sql技術").Default("要飯技術").Break();//點的爽啊    /**   C#類里看不出效果, 在mvc razor里  ? 、&& 或者 || 直接使用都會報錯,需要外面加一個括號,嵌套多了很不美觀,使用自定義擴展函數就沒有這種問題了。  */ bool isSuccess = true; //【IIF】//以前寫法var trueVal1 = isSuccess ? 100 :0;//現在寫法var trueVal2 = isSuccess.IIF(100); //以前寫法var str = isSuccess ? "我是true" : "";//現在寫法var str2 = isSuccess.IIF("我是true");  //以前寫法var trueVal3 = isSuccess ? 1 : 2;//現在寫法var trueVal4 = isSuccess.IIF(1, 2);   string id = "";string id2 = ""; //以前寫法isSuccess = (id == id2) && (id != null && Convert.ToInt32(id) > 0);//現在寫法isSuccess = (id == id2).And(id != null, Convert.ToInt32(id) > 0); //以前寫法isSuccess = id != null || id != id2;//現在寫法isSuccess = (id != null).Or(id != id2);

源碼:

using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace SyntacticSugar{  /// <summary>  /// ** 描述:邏輯糖來簡化你的代碼  /// ** 創始時間:2015-6-1  /// ** 修改時間:-  /// ** 作者:sunkaixuan  /// </summary>  public static class LogicSugarExtenions  {    /// <summary>    /// 根據表達式的值,來返回兩部分中的其中一個。    /// </summary>    /// <typeparam name="T"></typeparam>    /// <param name="thisValue"></param>    /// <param name="trueValue">值為true返回 trueValue</param>    /// <param name="falseValue">值為false返回 falseValue</param>    /// <returns></returns>    public static T IIF<T>(this bool thisValue, T trueValue, T falseValue)    {      if (thisValue)      {        return trueValue;      }      else      {        return falseValue;      }    }      /// <summary>    /// 根據表達式的值,true返回trueValue,false返回string.Empty;    /// </summary>    /// <typeparam name="T"></typeparam>    /// <param name="thisValue"></param>    /// <param name="trueValue">值為true返回 trueValue</param>    /// <returns></returns>    public static string IIF(this bool thisValue, string trueValue)    {      if (thisValue)      {        return trueValue;      }      else      {        return string.Empty;      }    }       /// <summary>    /// 根據表達式的值,true返回trueValue,false返回0    /// </summary>    /// <typeparam name="T"></typeparam>    /// <param name="thisValue"></param>    /// <param name="trueValue">值為true返回 trueValue</param>    /// <returns></returns>    public static int IIF(this bool thisValue, int trueValue)    {      if (thisValue)      {        return trueValue;      }      else      {        return 0;      }    }      /// <summary>    /// 根據表達式的值,來返回兩部分中的其中一個。    /// </summary>    /// <typeparam name="T"></typeparam>    /// <param name="thisValue"></param>    /// <param name="trueValue">值為true返回 trueValue</param>    /// <param name="falseValue">值為false返回 falseValue</param>    /// <returns></returns>    public static T IIF<T>(this bool? thisValue, T trueValue, T falseValue)    {      if (thisValue == true)      {        return trueValue;      }      else      {        return falseValue;      }    }       /// <summary>    /// 所有值為true,則返回true否則返回false    /// </summary>    /// <param name="thisValue"></param>    /// <param name="andValues"></param>    /// <returns></returns>    public static bool And(this bool thisValue, params bool[] andValues)    {      return thisValue && !andValues.Where(c => c == false).Any();    }      /// <summary>    /// 只要有一個值為true,則返回true否則返回false    /// </summary>    /// <param name="thisValue"></param>    /// <param name="andValues"></param>    /// <returns></returns>    public static bool Or(this bool thisValue, params bool[] andValues)    {      return thisValue || andValues.Where(c => c == true).Any();    }      /// <summary>    /// Switch().Case().Default().Break()    /// </summary>    /// <typeparam name="T"></typeparam>    /// <param name="thisValue"></param>    /// <returns></returns>    public static SwitchSugarModel<T> Switch<T>(this T thisValue)    {      var reval = new SwitchSugarModel<T>();      reval.SourceValue = thisValue;      return reval;     }     public static SwitchSugarModel<T> Case<T, TReturn>(this SwitchSugarModel<T> switchSugar, T caseValue, TReturn returnValue)    {      if (switchSugar.SourceValue.Equals(caseValue))      {        switchSugar.IsEquals = true;        switchSugar.ReturnVal = returnValue;      }      return switchSugar;    }     public static SwitchSugarModel<T> Default<T, TReturn>(this SwitchSugarModel<T> switchSugar, TReturn returnValue)    {      if (switchSugar.IsEquals == false)        switchSugar.ReturnVal = returnValue;      return switchSugar;    }     public static dynamic Break<T>(this SwitchSugarModel<T> switchSugar)    {      string reval = switchSugar.ReturnVal;      switchSugar = null;//清空對象,節約性能      return reval;    }     public class SwitchSugarModel<T>    {      public T SourceValue { get; set; }      public bool IsEquals { get; set; }      public dynamic ReturnVal { get; set; }    }   }  }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
午夜精品久久久久久99热软件| 性色av一区二区三区红粉影视| 日韩视频免费在线观看| 亚洲激情中文字幕| 免费97视频在线精品国自产拍| 国产精品老女人精品视频| 日韩一级黄色av| 国产日韩精品电影| 中文欧美在线视频| 日韩av在线影院| 久久免费精品日本久久中文字幕| 欧美成人国产va精品日本一级| 久久久久中文字幕| 欧美激情按摩在线| 欧美激情精品久久久| 欧美噜噜久久久xxx| 欧美日本在线视频中文字字幕| 97国产精品久久| 国产成人一区三区| xxxxxxxxx欧美| 91精品国产成人| 国产成人免费av电影| 亚洲精品按摩视频| 热re91久久精品国99热蜜臀| 68精品国产免费久久久久久婷婷| 久久精品国产一区二区电影| 在线观看欧美日韩国产| 亚洲性日韩精品一区二区| 欧美极品少妇与黑人| 亚洲日本aⅴ片在线观看香蕉| 国产在线观看精品| 欧美一级大片在线观看| 91精品国产91久久久久福利| 日韩欧美亚洲成人| 久久久久九九九九| 亚洲色无码播放| 国产午夜精品全部视频在线播放| 4k岛国日韩精品**专区| 在线国产精品视频| 久久久久久久久综合| 国产成人精品999| 亚洲午夜av电影| 久久精品一本久久99精品| 国产亚洲欧洲在线| 欧美激情成人在线视频| 欧美性猛交xxxx偷拍洗澡| 久久久精品亚洲| 色老头一区二区三区在线观看| 欧美成人一二三| 在线视频日韩精品| 日韩不卡在线观看| 66m—66摸成人免费视频| 日韩国产欧美区| 搡老女人一区二区三区视频tv| 久久在线免费观看视频| 久久久久久久av| 成人深夜直播免费观看| 91情侣偷在线精品国产| 中文字幕视频一区二区在线有码| 国内精品小视频在线观看| 亚洲成人精品视频在线观看| 亚洲免费av网址| 欧美一区在线直播| 一区二区三区www| 日韩在线观看免费av| 欧美精品在线播放| 国产精品av在线| 亚洲网在线观看| 国产亚洲精品久久| 九九热精品视频在线播放| 亚洲欧美日韩视频一区| 久久精品国产一区| 欧美在线激情网| 日韩中文字幕在线观看| 国内揄拍国内精品少妇国语| 91亚洲精品在线观看| 亚洲精品v欧美精品v日韩精品| 欧美性色19p| 久热精品视频在线观看| 亚洲欧洲黄色网| 欧美亚洲另类在线| 国产精品h在线观看| 国产v综合v亚洲欧美久久| 色吧影院999| 国产精品久久电影观看| 欧美国产高跟鞋裸体秀xxxhd| 色爱av美腿丝袜综合粉嫩av| 日韩一区在线视频| 国产成人精彩在线视频九色| 亚洲天堂男人天堂| 国产一区二区久久精品| 日韩有码片在线观看| 欧美日韩国产一中文字不卡| 国产91精品久久久久| 在线视频欧美日韩精品| 欧美日韩在线视频一区二区| www国产精品com| 国产主播在线一区| 国产成人一区三区| 精品av在线播放| 欧美在线性爱视频| 久久久久久这里只有精品| 欧美综合一区第一页| 欧美猛交ⅹxxx乱大交视频| 亚洲一区二区在线播放| 国产精品福利无圣光在线一区| 欧美巨猛xxxx猛交黑人97人| 91精品国产91久久久久久吃药| 亚洲天堂av在线播放| 最新国产精品亚洲| 久久久久久久久久久网站| 91精品中国老女人| 久久精品国产免费观看| 日韩中文av在线| 91精品在线影院| 亚洲bt天天射| 在线精品播放av| 国产精品爱啪在线线免费观看| 少妇av一区二区三区| 日本亚洲精品在线观看| 欧美性猛交xxxx免费看久久久| 精品电影在线观看| 国产精品电影观看| 中文字幕亚洲一区| 日韩成人小视频| 国产精品高清在线| 中文字幕亚洲欧美在线| 91色视频在线观看| 97不卡在线视频| 亚洲国产成人精品电影| 成人av在线网址| 成人黄色片在线| 91国产精品视频在线| 伊人伊成久久人综合网站| 91在线|亚洲| 久久久97精品| 欧美日本黄视频| 不卡av电影院| 成人免费福利在线| 97在线视频免费看| 欧美日本中文字幕| 中文字幕在线观看亚洲| 欧洲午夜精品久久久| 国产精品美女主播在线观看纯欲| 成人女保姆的销魂服务| 日韩av在线高清| 久久99久国产精品黄毛片入口| 日韩成人在线视频网站| 7m第一福利500精品视频| 亚洲精品自拍偷拍| 国产精品偷伦免费视频观看的| 国产精品久久久久99| 久久91精品国产91久久跳| 欧美专区日韩视频| 欧美性xxxx| 精品人伦一区二区三区蜜桃网站| 欧美性猛交xxxx免费看漫画| 亚洲国产福利在线| 欧美一级在线播放| 欧美丝袜一区二区三区| 欧美丰满少妇xxxx| 国产做受高潮69| 久久影视免费观看| 欧美亚洲视频一区二区|