詳細見我的163部落格.net反射詳解
引msdn對擴充套件方法的定義: 擴充套件方法使你能夠向現有型別「新增」方法(包括你自定義的型別和物件噢),而無需建立新的派生型別、重新編譯或以其他方式修改原始型別。擴充套件方法是一種特殊的靜態方法,但是可以像擴充套件型別上的例項方法一樣進行呼叫。對於用c#編寫的客戶端**,呼叫擴充套件方法與呼叫在型別中實際定義的方法之間沒有明顯的差異。
說了這麼多,開始上**。
方法一:擴充套件方法與反射實現 datatable 轉 list
public static listtolist(this datatable dt) where t:class,new()方法一呼叫else if (pi.propertytype == typeof(int) || pi.propertytype == typeof(int?))
else if (pi.propertytype == typeof(datetime?) || pi.propertytype == typeof(datetime))
else if (pi.propertytype == typeof(float))
else if (pi.propertytype == typeof(double))
else}}
lst.add(entity);
}return lst;
}
(1)首先建立乙個實體類
public class people(2)呼叫public int age
}
datatable dt = new datatable();方法二:擴充套件方法與action委託實現陣列的遍歷操作(foreach)dt.columns.add("name");
dt.columns.add("age");
datarow dr = dt.newrow();
dr[0] = "eric";
dr[1] = 20;
dt.rows.add(dr);
dr = dt.newrow();
dr[0] = "eric1";
dr[1] = 22;
dt.rows.add(dr);
listp = dt.tolist();
public static void foreach(this ienumerableien,actionexpress)方法二呼叫}
listlst = new list();方法三:利用方法一和方法二實現list轉換datatablevar arr = new string[3] ;
arr.foreach(it => lst.add(it));//這裡面可以做更複雜的處理
response.write(lst[0]);
public static datatable todatatable(this ienumerablevalue) where t : class,new()ok了 今天就到此為止了,睡覺嘍。每天學習一點點,每天進步一點點。)也是一樣
else
});if (value != null)
);dt.rows.add(row);}}
return dt;
}
利用反射實現DataTable 與 List 轉換
今天上班不太忙,就想著總結一下反射 擴充套件方法 以及lambda表示式的用法,自己就寫了個小demo記錄一下,希望各位大牛們看到後覺得不對的地方請及時提出。這篇文章中我只說明我的用法,作為乙個備忘,基本的語法我不講解,對這些概念不熟悉的童鞋在上搜素一下,呢那個找到很多相關的講解,小弟就先拋磚引玉了...
C 利用委託反射將DataTable轉換為實體集
2012 04 19 來自 cnblogs 字型大小 大中 小 類泛型的約束 public static class tomodelwhere t class,new 定義委託 public delegate void setstring string value 建立委託方法 private st...
利用委託反射將DataTable轉換為實體集
類泛型的約束 1 public static class tomodelwhere t class,new 定義委託 1 public delegate void setstring string value 建立委託方法 1 private static setstring createstrin...