.net的反射(reflection)是非常完善和強大的,例如有名的.net反編譯工具red gate's .net reflector就是使用了.net自身的反射機制,這裡有乙個比較簡單的例項(使用控制台程式),看看.net中如何使用反射。
usingsystem;
using
system.reflection;
namespace
mengliao.csharp.c13.s02
public
void
m1()
public
static
intm2(
intx)
public
void
m3(int
x, double
y) , y = .
", x, y);
} public
void
m4()
", count);
} private
static
string
m5(double
x) //
私有靜態方法,不能直接呼叫,但可以繫結到委託 }
class
program
); methodinfo methods
=t.getmethods();
//獲取myclass的所有方法列表
foreach
(methodinfo nextmethod
inmethods)
//列舉所有方法 if
(nextmethod.name =="
m2") //
方法m2
", nextmethod.invoke(
null
, new
object
));
} }
methodinfo m3info
=t.getmethod("m3
");
//獲取方法m3
m3info.invoke(obj,
newobject
); //呼叫方法m3,傳入對應的2個引數
//獲取方法m4,使用obj物件呼叫方法,無引數
t.invokemember("m4
", bindingflags.invokemethod,
null
, obj,
null
); //
建立泛型委託runme,並繫結myclass的靜態私有方法m5
delegate runme
=delegate.createdelegate(
typeof
(func
<
double
, string
>
), t, "m5
");
console.writeline(
"call delegate with m5: sqrt(2) =
", ((func
<
double
, string
>
)runme)(
2));
//呼叫該委託
console.readline();
} } }
使用反射機制可以呼叫各種方法,包括私有的、靜態的等等,程式中的注釋非常詳細,這裡就不多說了。
本文出自 「夢遼軟體工作室」 部落格,請務必保留此出處
C 的反射機制呼叫方法
net的反射 reflection 是非常完善和強大的,例如有名的.net反編譯工具red gate s net reflector就是使用了.net自身的反射機制,這裡有乙個比較簡單的例項 使用控制台程式 看看.net中如何使用反射。using system using system.reflec...
C 的反射機制呼叫方法
net的反射 reflection 是非常完善和強大的,例如有名的.net反編譯工具red gate s net reflector就是使用了.net自身的反射機制,這裡有乙個比較簡單的例項 使用控制台程式 看看.net中如何使用反射。using system using system.reflec...
反射機制 呼叫方法
通過反射機制,呼叫乙個物件的方法 獲取成員方法 public method getmethod string name,class.parametertypes 獲取單個公共成員方法 public method getdeclaredmethod string name,class.paramete...