1. 程式人生 > >系統類擴展方法,實現對所有類或某種類擴展自定義方法

系統類擴展方法,實現對所有類或某種類擴展自定義方法

系統 方法 extension lis empty sem sta 實現 ....

擴展方法的格式:

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);

系統類擴展方法,實現對所有類或某種類擴展自定義方法