unity中反射的使用
阿新 • • 發佈:2019-01-22
反射
定義
動態獲取型別資訊,動態建立物件,動態訪問成員的過程。
作用
在編譯時無法瞭解型別,在執行時獲取型別資訊,建立物件,訪問成員。
流程
1.得到資料型別2.動態建立物件
3檢視型別資訊(瞭解本身資訊,成員資訊)
常用類
1.取得資料型別Type方式一:Type.GetType(“型別全名”);
適合於型別的名稱已知
方式二:obj.GetType();
適合於型別名未知,型別未知,存在已有物件
方式三:typeof(型別)
適合於已知型別
方式四:Assembly.Load(“XXX”).GetType(“名字”);
適合於型別在另一個程式集中
Type類常用Get系列方法 Is系列屬性。
2.MethodInfo(方法)
重要方法: Invoke
3.PropertyInfo(屬性)
重要方法:SetValue GetValue
4.FieldInfo(欄位)
重要方法:SetValue GetValue
5.ConstructInfo(構造方法)
重要方法:Invoke
動態建立物件
Activator.CreateInstance(string 程式集名稱,string 型別全名)
Activator.CreateInstance(Type type);
Assembly assembly = Assembly.Load(程式集);
assembly.CreateInstance(Type);
//找到有參構造方法,動態呼叫構造方法
type.GetConstructor(typeof(string)).Invoke()