下面对一个DataTable添加一个扩展方法:
第一步:
新建一个CS文件,添加如下代码(添加了this表示是对DataTable的扩展):
1 public static void Extend(this DataTable dt, DataRow dr) 2 { 3 dt.Rows.Add(dr); 4 }
这个时候编译会报错说扩展方法必须在非泛型的静态类中定义。
第二步:将类改成静态类
1 public static class TableExtend
第三步:调用(在调用的地方加入命名空间,这里不可以自动完成添加,都手动添加)
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Data; 6 using TabelExtend; 7 8 namespace ExtendTest 9 { 10 class Program 11 { 12 static void Main(string[] args) 13 { 14 DataTable dt = new DataTable(); 15 dt.Columns.Add("ID", typeof(string)); 16 dt.Columns.Add("Name", typeof(string)); 17 dt.Columns.Add("Age", typeof(string)); 18 dt.Columns.Add("Salary", typeof(string)); 19 dt.Columns.Add("Group", typeof(string)); 20 21 22 } 23 24 static void Test(DataTable dt) 25 { 26 DataRow dr1 = dt.NewRow(); 27 dr1[0] = "1"; 28 dr1[1] = "2"; 29 dr1[2] = "3"; 30 dr1[3] = "4"; 31 dr1[4] = "5"; 32 dt.MapRoute(dr1); 33 34 } 35 } 36 37 38 }