public static Boolean IsNull<T>(this T val)
        {
            return val == null;
        }
这里暂时不说字符串。我是认为“比较清晰”,但什么思考都觉得有点多余。
不过,又感觉很清晰……
我右键【查找所有引用】,发现竟然用了50个地方。要不要改回来?
感觉这样蛮直接的。if(val.IsNull() || val == obj) //TODO...

解决方案 »

  1.   

    呼呼,你这个也太细了吧.不过你觉得
    if(val.IsNull())
    if(val==null)
    可读性不一样?
      

  2.   

    更白痴的是,我竟然还写了 6 个。。我查找引用一下,大概用了将近100个地方。        #region Is(Not)Null        /// <summary>
            /// <para>描述:判断当前对象是否为【null】。</para>
            /// <para>创建:2009-09-14。</para>
            /// <para>修订:2009-11-19。</para>
            /// </summary>
            /// <param name="val">目标对象。</param>
            public static Boolean IsNull<T>(this T val)
            {
                return val == null;
            }        /// <summary>
            /// <para>描述:判断当前对象是否非【null】。</para>
            /// <para>创建:2009-11-05。</para>
            /// <para>修订:2009-11-19。</para>
            /// </summary>
            /// <param name="val">目标对象。</param>
            public static Boolean IsNotNull<T>(this T val)
            {
                return val != null;
            }        /// <summary>
            /// <para>描述:判断当前字符串是否为【Empty】或【null】。</para>
            /// <para>创建:2009-09-14。</para>
            /// <para>修订:2009-10-28。</para>
            /// </summary>
            /// <param name="val">目标字符串。</param>
            public static Boolean IsNull(this string val)
            {
                return string.IsNullOrEmpty(val);
            }        /// <summary>
            /// <para>描述:判断当前字符串是否非【Empty】或非【null】。</para>
            /// <para>创建:2009-11-05。</para>
            /// <para>修订:2009-11-19。</para>
            /// </summary>
            /// <param name="val">目标字符串。</param>
            public static Boolean IsNotNull(this string val)
            {
                return !string.IsNullOrEmpty(val);
            }        /// <summary>
            /// <para>描述:判断当前字符串是否为【null】或空字符,倘若不是,将赋给【setSelf】对象。</para>
            /// <para>创建:2009-11-19。</para>
            /// <para>修订:2009-11-19。</para>
            /// </summary>
            /// <param name="val">目标字符串。</param>
            /// <param name="setSelf">赋值对象。</param>
            public static void IsNotNull(this string val, ref string setSelf)
            {
                if (val.IsNotNull()) setSelf = val;
            }        /// <summary>
            /// <para>描述:判断当前对象是否为【null】,从而返回一个对象。</para>
            /// <para>返回:为【null】时候返回默认值,否则返回当前对象。</para>
            /// <para>创建:2009-09-14。</para>
            /// <para>修订:2009-11-05。</para>
            /// </summary>
            /// <typeparam name="T">目标类型。</typeparam>
            /// <param name="val">目标对象。</param>
            /// <param name="def">默认值。</param>
            public static T IsNull<T>(this T val, T def)
            {
                if (val.IsNull()) return def;
                 return val;
            }        /// <summary>
            /// <para>描述:判断当前对象是否为【null】,从而返回一个对象。</para>
            /// <para>返回:非【null】时候返回默认值,否则返回当前对象。</para>
            /// <para>创建:2009-09-14。</para>
            /// <para>修订:2009-10-28。</para>
            /// </summary>
            /// <typeparam name="T">目标类型。</typeparam>
            /// <param name="val">目标对象。</param>
            /// <param name="def">默认值。</param>
            public static T IsNotNull<T>(this T val, T def)
            {
                if (val.IsNotNull()) return def;
                return val;
            }        /// <summary>
            /// <para>描述:判断当前对象是否为【null】或空字符,倘若不是,将赋给【setSelf】对象。</para>
            /// <para>创建:2009-11-18。</para>
            /// <para>修订:2009-11-18。</para>
            /// </summary>
            /// <typeparam name="T">目标类型。</typeparam>
            /// <param name="val">目标对象。</param>
            /// <param name="setSelf">赋值对象。</param>
            public static void IsNotNull<T>(this T val, ref T setSelf)
            {
                if (val.IsNotNull()) setSelf = val;
            }        #endregion
      

  3.   

    貌似有点多余了
    我就是感觉多余了,才“傻傻”的问下。自己尝试写类库,从8月份写到现在,感觉傻傻的。当初也不知道为什么会添加这个ISNULL