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

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

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

      Util應用程序框架公共操作類(十):可空值類型擴展

        當你使用可空的值類型時,你會發現取值很不方便,比如Guid? obj,你要從obj中獲取值,可以使用Value屬性obj. Value,但obj可能為null,這時候就會拋出一個異常。

        可空值類型提供了一個HasValue屬性,它可以識別出obj是不是一個null值,每當你獲取可空值都需要加上這個判斷if(value.HasValue){ var value = obj.Value;}。

        下面我們通過幾個擴展方法,把判斷封裝起來。

        在Util項目中添加Extensions.Nullable.cs,代碼如下。

      using System;
      
      namespace Util {
          /// <summary>
          /// 擴展 - 可空類型
          /// </summary>
          public static partial class Extensions {
              /// <summary>
              /// 安全返回值
              /// </summary>
              /// <param name="value">可空值</param>
              public static int SafeValue( this int? value ) {
                  return value.HasValue ? value.Value : 0;
              }
      
              /// <summary>
              /// 安全返回值
              /// </summary>
              /// <param name="value">可空值</param>
              public static Guid SafeValue( this Guid? value ) {
                  return value.HasValue ? value.Value : Guid.Empty;
              }
      
              /// <summary>
              /// 安全返回值,為null返回DateTime.MinValue
              /// </summary>
              /// <param name="value">可空值</param>
              public static DateTime SafeValue( this DateTime? value ) {
                  return value.HasValue ? value.Value : DateTime.MinValue;
              }
      
              /// <summary>
              /// 安全返回值
              /// </summary>
              /// <param name="value">可空值</param>
              public static bool SafeValue( this bool? value ) {
                  return value.HasValue && value.Value;
              }
      
              /// <summary>
              /// 安全返回值
              /// </summary>
              /// <param name="value">可空值</param>
              public static double SafeValue( this double? value ) {
                  return value.HasValue ? value.Value : 0;
              }
      
              /// <summary>
              /// 安全返回值
              /// </summary>
              /// <param name="value">可空值</param>
              public static decimal SafeValue( this decimal? value ) {
                  return value.HasValue ? value.Value : 0;
              }
          }
      }

        在Util.Tests測試項目的Extensions目錄中,添加NullableExtensionTest,代碼如下。

      using System;
      using Microsoft.VisualStudio.TestTools.UnitTesting;
      
      namespace Util.Tests.Extensions {
          /// <summary>
          /// 可空類型擴展
          /// </summary>
          [TestClass]
          public class NullableExtensionTest {
              /// <summary>
              /// 測試可空整型
              /// </summary>
              [TestMethod]
              public void TestSafeValue_Int() {
                  int? value = null;
                  Assert.AreEqual( 0, value.SafeValue() );
      
                  value = 1;
                  Assert.AreEqual( 1, value.SafeValue() );
              }
      
              /// <summary>
              /// 測試可空Guid
              /// </summary>
              [TestMethod]
              public void TestSafeValue_Guid() {
                  Guid? value = null;
                  Assert.AreEqual( Guid.Empty, value.SafeValue() );
      
                  value = Guid.NewGuid();
                  Assert.AreEqual( value.Value, value.SafeValue() );
              }
      
              /// <summary>
              /// 測試可空DateTime
              /// </summary>
              [TestMethod]
              public void TestSafeValue_DateTime() {
                  DateTime? value = null;
                  Assert.AreEqual( DateTime.MinValue, value.SafeValue() );
      
                  value = Conv.ToDate( "2000-1-1" );
                  Assert.AreEqual( value.Value, value.SafeValue() );
              }
      
              /// <summary>
              /// 測試可空bool
              /// </summary>
              [TestMethod]
              public void TestSafeValue_Boolean() {
                  bool? value = null;
                  Assert.AreEqual( false, value.SafeValue() );
      
                  value = true;
                  Assert.AreEqual( true, value.SafeValue() );
              }
      
              /// <summary>
              /// 測試可空double
              /// </summary>
              [TestMethod]
              public void TestSafeValue_Double() {
                  double? value = null;
                  Assert.AreEqual( 0, value.SafeValue() );
      
                  value = 1.1;
                  Assert.AreEqual( 1.1, value.SafeValue() );
              }
      
              /// <summary>
              /// 測試可空decimal
              /// </summary>
              [TestMethod]
              public void TestSafeValue_Decimal() {
                  decimal? value = null;
                  Assert.AreEqual( 0, value.SafeValue() );
      
                  value = 1.1M;
                  Assert.AreEqual( 1.1M, value.SafeValue() );
              }
          }
      }

       

        以后通過SafeValue方法就可以安全的獲取可空值類型了。

         calvinK同學給出一個更好的方案,代碼如下,在此表示感謝。

       

      namespace Util {
          /// <summary>
          /// 擴展 - 可空類型
          /// </summary>
          public static partial class Extensions {
              /// <summary>
              /// 安全返回值
              /// </summary>
              /// <param name="value">可空值</param>
              public static T SafeValue<T>( this T? value ) where T : struct {
                  return value ?? default( T );
              }
          }
      }

       

       

       

        .Net應用程序框架交流QQ群: 386092459,歡迎有興趣的朋友加入討論。

        謝謝大家的持續關注,我的博客地址:http://www.rzrgm.cn/xiadao521/

        下載地址:https://files.cnblogs.com/xiadao521/Util.2015.1.6.1.rar

       

      posted @ 2015-01-06 19:02  何鎮汐  閱讀(1894)  評論(5)    收藏  舉報
      主站蜘蛛池模板: 中文字幕在线日韩| 国产中文字幕精品视频| 国产成人片无码视频在线观看 | 亚洲 自拍 另类小说综合图区| 在线天堂最新版资源| 国产在线一区二区在线视频 | 久久国产乱子精品免费女| 国产精品自拍一二三四区| 少妇人妻系列无码专区视频| 欧美日韩中文字幕久久伊人| 国产亚洲av夜间福利香蕉149| 久久婷婷综合色丁香五月| 野花社区www视频日本| 鹤壁市| 精品无码成人久久久久久| 丝袜美腿视频一区二区三区| 午夜精品极品粉嫩国产尤物| 亚洲男女内射在线播放| 女人喷水高潮时的视频网站| 日韩精品中文字幕亚洲| 国语对白做受xxxxx在线中国| 亚洲欧美不卡视频在线播放| 少妇愉情理伦片高潮日本| 欧美人与动zozo在线播放| 日本欧美大码a在线观看| 67194熟妇在线观看线路| 99麻豆久久精品一区二区 | 国产精品免费久久久免费| 国产伦码精品一区二区| 虎白女粉嫩尤物福利视频| 久久不见久久见免费视频| 石河子市| 色综合久久中文字幕综合网| 狠狠爱俺也去去就色| 色欲av久久一区二区三区久| 亚洲成av人片天堂网无码| 少妇人妻偷人精品无码视频新浪| 久久亚洲2019中文字幕| 中文字幕久久精品波多野结| 最新国产精品亚洲| 亚洲精品日韩精品久久|