国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 數(shù)據(jù)庫 > 文庫 > 正文

你應(yīng)該知道的States字段使用規(guī)范

2020-10-29 21:47:09
字體:
供稿:網(wǎng)友

前言

最近在工作中了遇到了一些內(nèi)容,覺著有必要和大家分享下,我們?yōu)榱私y(tǒng)一數(shù)據(jù)庫表的狀態(tài)字段,統(tǒng)一數(shù)據(jù)庫表設(shè)計(jì),簡化字段在程序開發(fā)中的使用方式,下面話不多說了,來一起看看詳細(xì)的介紹吧。

解決方式

States對(duì)應(yīng)位域枚舉StatesFlags。

/// <summary> /// 數(shù)據(jù)狀態(tài)枚舉 /// </summary> [Flags] [DataContract] [EnumDescription("狀態(tài)")] public enum StatesFlags {  /// <summary>  /// 可用狀態(tài)  /// </summary>  [XmlEnum("1")]  [EnumDescription("可用")]  [EnumMember]  Enabled = 1,  /// <summary>  /// 停用狀態(tài)  /// </summary>  [XmlEnum("2")]  [EnumDescription("停用")]  [EnumMember]  Disabled = 1 << 1,  /// <summary>  /// 移除(相當(dāng)于邏輯刪除)  /// </summary>  [XmlEnum("4")]  [EnumDescription("移除")]  [EnumMember]  Removed = 1 << 2,  /// <summary>  /// 已確認(rèn)(已經(jīng)審核通過)  /// </summary>  [XmlEnum("8")]  [EnumDescription("已確認(rèn)")]  [EnumMember]  Confirmed = 1 << 3,  /// <summary>  /// 鎖定  /// </summary>  [XmlEnum("16")]  [EnumDescription("鎖定")]  [EnumMember]  Locked = 1 << 4,  /// <summary>  /// 鎖定登錄  /// </summary>  [XmlEnum("32")]  [EnumDescription("鎖定登錄")]  [EnumMember]  LockLogin = 1 << 5 }

業(yè)務(wù)模型使用方式

在業(yè)務(wù)模型中,需要關(guān)注模型的特定狀態(tài)集,寫入新的狀態(tài)時(shí)使用模型中的States, 讀取時(shí)每一個(gè)狀態(tài)獨(dú)立提供讀取實(shí)現(xiàn)。如下圖中IsRemoved狀態(tài) 以后大家一看代碼就知道這個(gè)模型到底有幾個(gè)狀態(tài)

///<sumary>  /// 狀態(tài)集,寫  ///</sumary>  public StatesFlags States { get; set; }  /// <summary>  /// 只讀  /// </summary>  public bool IsRemoved => States.HasFlag(StatesFlags.Removed);

StatesFlags的4個(gè)擴(kuò)展方法

/// <summary> /// 數(shù)據(jù)狀態(tài)枚舉 /// </summary> public static class StatesFlagsExtends {  /// <summary>  /// 設(shè)置可用  /// </summary>  /// <param name="states">狀態(tài)</param>  public static StatesFlags SetEnable(this StatesFlags states)  {   if (states.HasFlag(StatesFlags.Disabled)) states = states ^ StatesFlags.Disabled;   if (!states.HasFlag(StatesFlags.Enabled)) states = states | StatesFlags.Enabled;   return states;  }  /// <summary>  /// 設(shè)置停用  /// </summary>  /// <param name="states">狀態(tài)</param>  public static StatesFlags SetDisable(this StatesFlags states)  {   if (states.HasFlag(StatesFlags.Enabled)) states = states ^ StatesFlags.Enabled;   if (!states.HasFlag(StatesFlags.Disabled)) states = states | StatesFlags.Disabled;   return states;  }  /// <summary>  /// 移除狀態(tài)  /// </summary>  /// <param name="states">狀態(tài)</param>  /// <param name="state">要移除的狀態(tài)</param>  public static StatesFlags RemoveState(this StatesFlags states, StatesFlags state)  {   //也可以通過如下計(jì)算去除一個(gè)狀態(tài)states = states & ~StatesFlags.Disabled;   return states ^ state;  }  /// <summary>  /// 附加狀態(tài)  /// </summary>  /// <param name="states">狀態(tài)</param>  /// <param name="state">要附加的狀態(tài)</param>  public static StatesFlags AttachState(this StatesFlags states, StatesFlags state)  {   return states | state;  } }

由于Enable和Disable是互斥的,所以對(duì)應(yīng)有SetDisable、SetEnable 。其它非互斥狀態(tài) 提供 AttachState、RemoveState用于附加或移除狀態(tài)。 如出現(xiàn)新的狀態(tài)在StatesFlags中添加,狀態(tài)為位域枚舉,使用連續(xù)的數(shù)字移位操作,增加代碼可讀性。

附擴(kuò)展方式測試代碼

[TestClass] public class StatesFlagsTest {  [TestMethod]  public void TestStatesExtends()  {   //賦初值 在用、鎖定、移除   var state = StatesFlags.Enabled | StatesFlags.Locked | StatesFlags.Removed;   //調(diào)用SetDisable方法,設(shè)為停用   state = state.SetDisable();   Assert.IsTrue(!state.HasFlag(StatesFlags.Enabled));   Assert.IsTrue(state.HasFlag(StatesFlags.Disabled));   //調(diào)用SetEnable方法,設(shè)為在用   state = state.SetEnable();   Assert.IsTrue(state.HasFlag(StatesFlags.Enabled));   Assert.IsTrue(!state.HasFlag(StatesFlags.Disabled));   //調(diào)用RemoveState方法,移除狀態(tài)   state = state.RemoveState(StatesFlags.Locked);   Assert.IsTrue(!state.HasFlag(StatesFlags.Locked));   Assert.IsTrue(state.HasFlag(StatesFlags.Removed));   //調(diào)用AttachState方法,附加狀態(tài)   state = state.AttachState(StatesFlags.Confirmed);   Assert.IsTrue(state.HasFlag(StatesFlags.Confirmed));   //直接調(diào)用方法,不賦值不能改變states的值   state.AttachState(StatesFlags.Locked);   Assert.IsTrue(!state.HasFlag(StatesFlags.Locked));  } }

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)武林網(wǎng)的支持。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产午夜在线观看| 99热99re6国产在线播放| 黄色av网址在线免费观看| 永久免费网站在线| 四虎影视成人永久免费观看视频| 国产日韩网站| 国产国语**毛片高清视频| 国产精品日日爱| 99在线视频影院| 蜜桃av在线免费观看| 成人超碰在线| 中文字幕4区| 高清在线观看av| 激情综合丁香| 国产99在线|亚洲| а√最新版地址在线天堂| 国产免费黄网站| 国产三区视频在线观看| 在线播放www| 九九热在线免费视频| 国产素人视频在线观看| 亚洲电影视频在线| 国产精品国产三级国产试看| 懂色av一区| 久热国产视频| 国产麻豆精品视频一区二区 | 日本国产在线| 最近中文字幕av免费高清| 亚洲第一成人在线视频| 国产视频1区| 尤物视频网站在线观看| 免费男女羞羞的视频网站中文字幕| 国产精品四虎| 玖玖在线视频| 亚洲人av在线| 伊人av免费在线观看| 1区2区3区在线| 国内外激情在线| 免费高清av| 欧美性猛交xxxx免费看久久| 国产youjizz在线| 国产三级视频在线播放线观看| 成年午夜在线| 激情小说 在线视频| 黄色片av在线| 中文字幕一区二区三区免费视频| 久久久久久国产视频| av亚洲在线| 18av在线播放| 中文在线视频| 在线看黄网站| 天天草天天干| 免费av不卡在线观看| 免费看av大片| 国产一区电影| 国产小视频福利在线| 国产亚洲精品久久久久久青梅 | 中文字幕有码在线视频| 国产一区二区三区美女秒播| 国产一级激情| 91欧美在线视频| 夜夜爽夜夜操| 黄网站app在线观看下载视频大全官网| wwww亚洲| 国产一起色一起爱| 亚洲精品少妇久久久久久| 久久亚洲资源| 国产高清免费在线播放| 国产精品美女一区二区三区四区 | 四虎精品成人a在线观看| 在线āv视频| 欧美96在线| 91国内精品在线视频| 天天插天天操| 国产精品久久久久久久牛牛| www中文字幕在线观看| 国产精品久久一区二区三区不卡| 亚洲videos| 久久五月精品中文字幕| 国产变态拳头交视频一区二区| 性网站在线观看| 国产区成人精品视频| 人人干人人插| 精品av中文字幕在线毛片| 免费在线看v| 国产毛片视频| 午夜在线视频| 在线免费看黄网站| 国产精品白浆视频免费观看| 麻豆国产在线播放| 丁香视频五月| 在线观看免费高清完整| 久久亚洲天堂| av色在线观看| 国产视频在线播放| wwww亚洲| 亚洲第一成年免费网站| 国产成人精品实拍在线| 精品街拍一区二区| 伊人222成人综合网| 国产激情在线视频| 国产午夜在线| 国产精品伦一区二区三区视频| 免费国产阿v视频在线观看| 三级小说一区| 午夜小视频在线| 免费在线黄色网址| 黄色网页网址在线免费| 美女永久在线网站| 亚洲国产精华液| 日本免费视频www| 欧美精品一区二区三区免费| 免费99热在线观看| 国产精品臀控福利在线观看| 国产农村av| 夜夜操天天干| 牛牛在线精品视频| 国产福利免费在线观看| 免费不卡中文字幕视频| 亚洲男人的天堂成人| 国产对白在线| 96久久久久久| yjizz视频网站在线播放| 国内外激情在线| 欧美另类在线视频| 国产天堂素人系列在线视频| 国产成免费视频| 超碰在线国产| 精品入口麻豆传煤| 久草网在线视频| 国产精品久久精品牛牛影视| 在线亚洲精品自拍| 国产蜜臀在线| 99爱视频在线观看| 国产美女福利在线观看| 中文字幕4区| 国产精品入口麻豆电影| 久草在线视频网| 尤物在线视频观看| jlzzjlzz欧美| av在线播放av| 中文字幕在线视频不卡| 欧美日韩一区二区三区视视频| 国产精品入口麻豆电影| 超碰在线免费播放| 伊人网在线观看| 久草视频国产| 在线视频xx| 在线播放国产区| 精品卡一卡卡2卡3网站| 国产在线麻豆精品| 日本高清中文字幕在线| 国产日韩网站| 国产一二在线观看| av亚洲男人天堂| 国产超级va在线视频| 国产一区二区三区不卡免费观看 | 最近中文字幕在线中文视频| gogo在线观看| 国产国语**毛片高清视频| 中文字幕不卡免费视频| 五月婷婷在线观看| 最近中文字幕mv免费高清视频8 | 久久精品无码一区二区日韩av | 丁香在线视频| 中文字幕高清av| 国产网红女主播精品视频| 日本中文字幕在线播放| 国产三区在线观看| 国产理论片免费观看| av免费在线观看网站| 国产精品亚洲色图| 国产网站免费观看| 久久五月精品| 久久五月精品中文字幕| 国产在线精品一区二区不卡| 人人澡人人爽| 俺来俺也去www色在线观看| 欧洲有码在线视频| 91sp网站在线观看入口| 国产青青草在线| 一本大道五月香蕉| 免费a级毛片在线观看| 国产一卡2卡3卡4卡网站免费| 午夜视频在线| 亚洲欧美中文字幕在线观看| 波多野结衣中文字幕久久| 国产免费黄网站| 中文岛国精品亚洲一区| 国产原创av在线| 国产极品美女到高潮| av网址在线看| 国产精品入口免费麻豆| 午夜在线网站| 国产精品你懂的在线观看| 午夜在线不卡| 中文在线观看视频| 国产午夜三区视频在线| 欧美色欧美亚洲另类二区精品 | 日本福利在线|