如题...比如 我有一个object的变量A 它本来是button类型的变量 但是我不知道A的本身类型
怎么样才能动态转型了?
如果还有更多的类型的话 怎么做?
怎么样才能动态转型了?
如果还有更多的类型的话 怎么做?
解决方案 »
- 请问ASHX文件是干什么用的。具体使用方法是什么?
- 求助思路:下载文件问题,如何实现登录用户才能下载文件。未登录用户即使知道文件的物理路径,直接输入路径也不能下载
- (高手进)如何取用户控件中dropdownlist值
- 今天狠心买了本《ASP.NET 2.0服务器控件与组件开发高级编程》看不懂啊.
- asp.net2.0中关于cookie的问题
- vb。net:datagrid 如何 利用 checkbox 实现 记录的 批量删除
- 我在page_load中加了一个web服务器控件button,可是他不会执行相应的事件代码
- 如何跳转页面后提交数据库?
- 如何生成DATAGRID的HTML
- 我用showModalDialog打开一个窗口后,新窗口里面的按钮事件提交后怎么会新开一个窗口。
- asp.net中如何将url地址栏中传值的数字加密
- BS结构 CS界面 怎么搭这个框架啊?【在线等】
{
public T t{ get; private set; }
public Test(T tt)
{
t= tt;
}
}
比如接收的Object obj
Type type = cmdAsk.GetType();
PropertyInfo property = type.GetProperty("属性名称");//获取属性对象
string proValue = property.GetValue(obj, null).ToString();//获取属性值 MethodInfo method = type.GetMethod("方法名称");//获取方法对象
返回值 rvvalue = (返回值类型转换)method.Invoke(obj,null);//执行被调方法并接受返回值
这里传递的TestDemo是用Object接收的
这时候在公共处理方法中,并不知道要调用Object的哪个方法,可以在每个类中都加一个属性,MethodName,用于保存要调用的方法名称。这样TestDemo类就变成了这样
public class TestDemo
{
public string GetName(){ return "I get this name.";}
private string methodName;
public string MethodName//每个类中该属性都取这样的名称
{
get{...}
set{...}
}
}
然后在接收的地方
传递之前,TestDemo td = new TestDemo(); td.MethodName="GetName";//设定要执行的方法名称
接收后:
Type type = obj.GetType();//obj为参数(Object obj),接收传进来的TestDemo类
PropertyInfo property = type.GetProperty("MethodName");//获取保存被调方法名称的属性
string methodName = property.GetValue(obj, null).ToString();//获取被调方法名
MethodInfo method = type.GetMethod(methodName);//获取被调方法
string result = (string)method.Invoke(obj,null);//执行被调方法并接受返回值
这样就获取到result值为:I get this name.