一、反射
a)通過反射可以動態地建立物件、賦值或者呼叫方法。mvc、ef等各種框架都會用到反射,還有vs的智慧型感知、監視功能也利用了反射。
反射的基礎類為type,每個類對應乙個type物件,每個方法、屬性分別對應methodinfo和propertyinfo物件,這些就是類、方法、屬性的元資料(meta data)。
b) 獲取乙個類的type物件有下面幾種方法,可根據場景需要選擇適合的方式:
var p1 = new person();
//1 通過例項化後的物件獲取
var t1 = p1.gettype();
//2 通過類直接獲取
var t2 = typeof(person);
//3 通過類所在的程式集獲取
var t3 = type.gettype(" _6._1_reflect.person");
c) type類的方法很多,這兒學習getmethod的基本使用,person類的hello方法有兩個過載
class person
public void hello(string s)
}type t1 = typeof(person);
createinstance用於建立類的例項
var obj = activator.createinstance(t1);
getmethod用於取得某個方法,要區分兩個hello過載,需要在第二個引數中傳入簽名資訊以幫助識別,乙個string引數時傳入new type ,無參時傳入new type[0]。
methodinfo mihello = t1.getmethod("hello", new type[0]);
mihello.invoke(obj, new object[0]);
methodinfo mihello1 = t1.getmethod("hello", new type );
mihello1.invoke(obj, new object );
獲取到方法後,使用invoke方法來呼叫,同時可以傳入引數。
二、正則
正則用於匹配字串,正則相關的知識博大精深、用途廣泛,先把匹配、校驗字串這樣的用途學會吧。
正則的基本元字元有:
. 除了\n以外的任意的單個字元
[0-9] 0-9之間的任意乙個數字
\d 數字
\d 非數字
\a 空白
\s 非空白
\w 小寫字元和數字、漢字
\w 特殊符號
\ 對於.等特殊字元轉義
() 提公升優先順序、提取組
| 或者
+ 出現1到無限次
* 出現0到無限次
? 出現0-1次
一次或兩次, 最少一次
^ 開始
$ 結束
先了解一點點,下篇繼續學習正則。另外sql中like語句除了常用的%外,還有_,%用於匹配任意多個字元,_則用於匹配乙個字元。
學習資料:如鵬網.net提高班
java正則表達和反射
正規表示式 理解 1 正規表示式 就是符合一定規則的字串。2 正規表示式的特殊字元 a 字元 x 字元x 舉例 a,b,c 反斜線字元 t 製表符 u0009 n 新行 換行 符 u000a r 回車符 u000d b 字元類 abc a b 或 c 簡單類 abc 任何字元,除了 a b 或 c ...
python基礎 反射和異常
反射 通俗的說就是你給乙個字串,我就能匹配到和字串相同的函式進行呼叫 反射舉例說明 def bulk self print s is yelling self.name class dog object def init self,name self.name name defeat self,fo...
正規表示式和反射
1 什麼是正規表示式?就是對你想要操作的字串指定操作格式。2 為什麼要用它?簡化對字串的操作。3 如何用它?實際上就是對字串函式裡面傳指定規則的正規表示式。匹配 利用matches 正規表示式 切割 split 正規表示式 替代 replaceall 正規表示式 獲取 1,獲取pattern類例項 ...