系统类扩展方法,实现对所有类或某种类扩展自定义方法

Posted mol1995

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统类扩展方法,实现对所有类或某种类扩展自定义方法相关的知识,希望对你有一定的参考价值。

扩展方法的格式:

1、必须把扩展方法写在静态类中

2、扩展方法的第一个参数必须加 "this" 修饰

例如,对所有object对象的扩展方法IsEmptyOrNull,判断对象是否为空,object o 前加了this,所有Object对象都可调用此方法

public static bool IsEmptyOrNull(this object o)
{
     return o == DBNull.Value || string.IsNullOrWhiteSpace(o?.ToString());
}

 

再如,对所有List对象扩展方法ToDataTable:

public static DataTable ToDataTable<T>(this IList<T> list)
{
      .....
}

可以两种方式调用这种扩展方法:

1、对象名直接加点调用,如myList.ToDataTable();

2、通过类名调用如MyExtensions.ToDataTable(myList);

以上是关于系统类扩展方法,实现对所有类或某种类扩展自定义方法的主要内容,如果未能解决你的问题,请参考以下文章

设计模式学习笔记(十六:桥接模式)

在java中创建自定义异常

Django视图扩展类

CI框架扩展自定义控制器的方法

需要重写或实现哪些类或方法才能仅自定义 Shiro 的身份验证逻辑?

如何使用 Typescript 使用自定义方法实现类数组类?