对一些对象进行方法扩展

下面对一个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 }
原文地址:https://www.cnblogs.com/lihongchen/p/3625196.html