<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      將不確定變?yōu)榇_定~感謝異或,是你讓我徹底擺脫“否定式”

      在這里,我需要感謝一下“異或”運(yùn)算符,真的,謝謝你,^(xor),如果沒有它,也許我架構(gòu)里總是離不開否定式,如果你看不懂我說的,那讓先看看這篇文章,事實(shí)上那篇文章沒有解決根本的否定式問題,題目也只是對(duì)DefaultValue的一個(gè)學(xué)習(xí),這篇文章,我認(rèn)為終于把“否定式“解決了,真的解決了!

      這是我的架構(gòu)代碼,否定式的出現(xiàn)是為了讓程序員少寫代碼

       public interface IUnitOfWork
          {
              /// <summary>
              /// 將操作提交到數(shù)據(jù)庫,
              /// </summary>
              void Save();
              /// <summary>
              /// 是否不提交到數(shù)據(jù)庫,這只是在具體的repository類中的SaveChanges方法里用到的
              /// 默認(rèn)應(yīng)該設(shè)置為false,即默認(rèn)為提交到數(shù)據(jù)庫
              /// </summary>
              /// <returns></returns>
              bool IsNotSubmit { get; set; }
          }

      當(dāng)你的數(shù)據(jù)上下文實(shí)現(xiàn)IUnitOfWork接口后,不需要為IsNotSubmit 再賦值,你只要實(shí)現(xiàn)一下getter,setter就可以了,但代碼看上去是不漂亮的,因?yàn)榇a的含義

      是一種“否定式”,我們一般會(huì)把它解釋為:沒有提交,而在程序中,我們希望它是提交的,會(huì)這樣寫代碼

               if (!iUnitWork.IsNotSubmit)
                  iUnitWork.Save();

      意思是說,如果不是被不提交的(即提交的),就保存動(dòng)作,這個(gè)解釋對(duì)我們來說是不容易理解的,我們一般叫它否定式的,為什么不用IsSubmit,因?yàn)閎ool類型默認(rèn)值是false,如果你用issubmit,那就是默認(rèn)為“不提交”動(dòng)作,而我需要的是“默認(rèn)提交”,而我又不希望每個(gè)上下文在實(shí)現(xiàn)時(shí),都去把IsSubmit賦為true,因?yàn)檫@樣

      程序員不干了,程序本身也不漂亮,所以,我才用了isnotSubmi——這是使用它的原因...

      Xor的出現(xiàn),讓我徹底擺脫“否定式”

      異常的含義大家都知道,相同為假,相異為真,呵呵,但卻沒有用在它需要的地方,這是我們國人的通病,即只知道這個(gè)東西,但卻不知道如何用好它。

      看我的代碼,使用xor,把isnotsubmit改為issubmit,呵呵

        public interface IUnitOfWork
          {
              /// <summary>
              /// 將操作提交到數(shù)據(jù)庫,
              /// </summary>
              void Save();
              /// <summary>
              /// 是否需要顯示進(jìn)行提交(save())
              /// 默認(rèn)為false,即在repository方法中自動(dòng)完成提交,值為true時(shí),表示需要顯示調(diào)用save()方法
              /// </summary>
              /// <returns></returns>
              bool IsSubmit { get;set; }
      
          }

      注意看下面的判斷,它是核心,事實(shí)上是程序處理的一個(gè)小技巧

       if (db.IsSubmit ^ true)//IsSubmit為true時(shí),不自動(dòng)執(zhí)行save()方法
             db.Save();

      我們讓IsSubmit與true作一個(gè)異或運(yùn)算,通過概念我們?nèi)绻?dāng)issubmit為false時(shí),條件才為真,而bool類型默認(rèn)值就是false,所以,咱們的程序完美了,默認(rèn)就提交了,而且我的屬性是IsSubmit ,而不是IsNotSubmit ,呵呵,終于擺脫“否定式”,呵呵!

      再次感謝xor,感謝異或!

       

      posted @ 2013-09-11 18:04  張占嶺  閱讀(852)  評(píng)論(2)    收藏  舉報(bào)
      主站蜘蛛池模板: 亚洲天堂男人的天堂在线| 日韩中文字幕v亚洲中文字幕| 亚洲男人在线天堂| 精品中文字幕人妻一二| 久久精品国产免费观看频道| 99久久国产成人免费网站| 国产绿帽在线视频看| 国产白嫩护士在线播放| 亚洲综合天堂av网站在线观看 | 亚洲色在线v中文字幕| 亚洲精品国产老熟女久久| 免费人成视频在线| 日韩av日韩av在线| 亚洲国产成人久久综合同性| 亚洲国内精品一区二区| 四虎在线成人免费观看| 韩国 日本 亚洲 国产 不卡| 国产精品视频午夜福利| 国产精品沙发午睡系列990531| 福利网午夜视频一区二区| 亚洲欧洲日韩精品在线| 饶阳县| 丝袜美腿视频一区二区三区| 亚洲午夜福利AV一区二区无码| 国产精品人妻中文字幕| 国产亚洲精品aaaa片app| 久久久久久久一线毛片| 国产极品美女高潮无套| 亚洲高清国产拍精品熟女| 一个人免费观看WWW在线视频| 宅男噜噜噜66在线观看| 欧美 亚洲 国产 制服 中文| 国产成人午夜福利院| 日本高清aⅴ毛片免费| 少妇熟女视频一区二区三区| 人妻蜜臀久久av不卡| 少妇激情一区二区三区视频小说| 亚洲国产欧美在线人成aaaa| 亚洲中文字幕国产综合| 人妻互换一二三区激情视频 | 亚洲欧洲日韩国内精品|