Graphics g = ;
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
g = eGraphics;
}
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
//这里要怎么调用g
首先要对G判断一下,是不是为NULL,再调用。
}
#region 动态获取变量值
private int i = 10;
/// <summary>
/// 通过变量名获取变量值
/// </summary>
/// <param name="s">变量名,默认值为i,可不填</param>
public object GetValueByName(string s = "i")
{
FieldInfo f = GetType()GetField(s);
if (f != null)
{
return fGetValue(this);
}
return f;
}
#endregion
注意!这个只针对于动态获取当前类里的变量值,不能获取当前方法内的变量值。
反射:在运行状态下,通过class文件对象,去使用构造方法,成员变量,成员方法
方法有三种:
1类名class
2对象getclass()
3classforName("包名类名")
好处:
只要有一个类或者一个类的对象,就可以得到这个类或对象的所有属性和方法,包括私有的
同步方法
反射成员方法:
1获取字节码文件
Class c = ClassforName("包名类名");
2反射方法
Method m = cgetMethod("反射的方法",方法的参数类型class);
3用方法,minvoke(对象,参数) 对象,cnewInstance ,在A建立对象。
minvoke(cnewInstance(),参数);
类加载器与反射有什么关系
反射是通过字节码文件对象,将类的字段,方法,构造器等映射成相应的类,并进行各自的 *** 作;
类加载器是通过某个类的classLoader()方法,将该类的class文件从硬盘中加载到java虚拟机中,形成字节码文件;
亲 你说的是不是,工厂模式
interface PP{
}
class Man implements pp{
}
class Women implements PP{
}
class Wood implements PP{
}
class Fish implements PP{
}
class PPFactory {
public static PP getOne(String str){
if(strequals("man")){
return new Man();
}else if("woman"equals(str)){
return new Woman();
}else if("wood"equals(str)){
return new Wood();
}
}
}
class Test{
main(){
PP p = PPFactorygetOne("man");
PP p = PPFactorygetOne("woman");
}
}提交回答
以上就是关于请教 如何用c#反射得到private成员函数和变量全部的内容,包括:请教 如何用c#反射得到private成员函数和变量、C#,已知字符串,如何获取到这个变量。、反射是什么反射获取字节码文件的三种方式等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)