zoukankan      html  css  js  c++  java
  • C# 类的扩展方法

      学过C#的都知道,object是所有类型的最终基类,而object中有一个ToString方法,因此,C#中的所有类型都拥有了ToString方法。

         但是,如果调用对象为null的时候,将引发空引用异常NullReferenceException。

      现在,通过C#中的扩展方法完成一个安全的ToString方法

        public static class Extension
        {
            public static string ToSafeString(this object obj)
            {
                if (null == obj)
                {
                    return "";//这儿可以自定义返回值
                }
                else
                {
                    return obj.ToString( );
                }
            }
    
        }

      这样,形如  string sss = null; sss.ToSafeString( ); 的代码就不会报错了。

    可以看到这是一个静态类,类名可以是任意的,但是推荐以 类型名+Extension的方式命名,以此来标识这个是一个实现扩展方法的静态类。这儿,由于ToSafeString是面向object类型的,所有我就直接以Extension命名了。

    例如,实现一个判断string是否为空的扩展方法

        public static class StringExtension
        {
            public static bool IsNullOrEmpty(this string str)
            {
                return String.IsNullOrEmpty(str);
            }
        }

    扩展方法的实现都是静态类的静态函数,第一个参数是调用扩展方法的对象,在类型前加this来标识。

  • 相关阅读:
    IOS UITableView 加载图片 卡的问题
    泛型
    正则表达式
    CSS 实现圆角表格
    CSS 横向滚动广告
    WebService
    CSS 弹出层 支持IE/FF/OP
    XML2DT DT2XML
    HttpWebRequest 调用 WebService 返回 xml
    CSS 自由伸展的三栏式版面
  • 原文地址:https://www.cnblogs.com/hualuo-code/p/5165446.html
Copyright © 2011-2022 走看看