您的位置:首页 > 编程语言 > C#

C# 类的扩展方法

2016-01-28 10:45 295 查看
  学过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来标识。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: