src/DotNetCommon.Core/Extensions/IfNullUseExtensions.cs

(开头部分) 10KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Text;

namespace DotNetCommon.Extensions
{
    /// <summary>
    /// 提供IfNullUse系列扩展方法
    /// </summary>
    public static class IfNullUseExtensions
    {
        #region 普通类的IfNullUse
        /// <summary>
        /// (obj??defaultValue)的简写形式,主要是为了解决连续调用时的括号问题,如下: 
        /// <code>var str=(obj??new object()).ToString()</code>
        /// <code>var str=obj.IfNullUse(new object()).ToString()</code>
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="obj"></param>
        /// <param name="defaultValue"></param>
        /// <returns></returns>
        public static T IfNullUse<T>(this T obj, T defaultValue = default(T)) where T : class => obj ?? defaultValue;
        #endregion

        #region 数字的IfNullUse       

        #region 可空数字类型
        /// <summary>
        /// 如果是null的话返回defaultValue
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="defaultValue"></param>
        /// <returns></returns>
        public static sbyte IfNullOrDefaultUse(this sbyte? obj, sbyte defaultValue = 0) => (obj == null || obj == default(sbyte)) ? defaultValue : obj.Value;

        /// <summary>
        /// 如果是null的话返回defaultValue
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="defaultValue"></param>
        /// <returns></returns>
        public static byte IfNullOrDefaultUse(this byte? obj, byte defaultValue = 0) => (obj == null || obj == default(byte)) ? defaultValue : obj.Value;

        /// <summary>
        /// 如果是null的话返回defaultValue
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="defaultValue"></param>
        /// <returns></returns>
        public static ushort IfNullOrDefaultUse(this ushort? obj, ushort defaultValue = 0) => (obj == null || obj == default(ushort)) ? defaultValue : obj.Value;

        /// <summary>
        /// 如果是null的话返回defaultValue
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="defaultValue"></param>
        /// <returns></returns>
        public static short IfNullOrDefaultUse(this short? obj, short defaultValue = 0) => (obj == null || obj == default(short)) ? defaultValue : obj.Value;

        /// <summary>
后面还有 196 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。