反射~ MethodInfo mi = this.GetType().GetMethod("DoSth", BindingFlags.Instance| BindingFlags.Public);
mi = mi.MakeGenericMethod(你知道的类型Type实例);
object ret=mi.Invoke(this, new object[] { 要传入的那个T型参数});
ret就是返回值
mi = mi.MakeGenericMethod(你知道的类型Type实例);
object ret=mi.Invoke(this, new object[] { 要传入的那个T型参数});
ret就是返回值
解决方案 »
- [讨论]发现计算连续加法,串行效率要比并行的高?
- 需要系统自动判断我设定的时间是否到了当前系统时间,到了之后去执行相关操作我需要这么做
- 不使用强命名如何将.Net库注册为COM组件?
- 怎么把一个delphi开发的软件嵌入到网页中让其在网页上直接使用
- 接收串口的数组数据不正确如何解决??
- 水晶报表, 用c# 中的水晶报表,怎么在报表中插入字段呀,就是那个 fieldobject 这个对象,在工具栏中只看到textobject ,lineobject. ...
- 妖怪的问题!!!!
- 怎么判断DataGrid的滚动条的位置?
- 关于C#操作活见鬼的问题.(注:本人已搜过msdn并学习过相关问答)
- theTitle_0,theTitle_1,theTitle_2……如何用for来循环?
- Datagridview里的合并单元格和自动换行
- 请教,服务端怎样获取客户端传来的DataSet的名字,以及里面的表名,列名?
namespace My.namespace
public class user
{
public ID{get;set;}
public Name{get;set;}
}
我现在只有一个实体类的实例info,和这个实体类的TYPE字符串"My.namespace.user",那么我该怎么调用那个方法?
Type type=Type.GetType("My.namespace.user");
DoSth <type>(info);
这个样好像报错。
case "string":
DoSth<string>("hello");
break;
}
直接DoSth <user>(info);不行么?
比如IList<T>和IList
2.只能判断了
if(info.GetType() == typeof(user))
{
DoSth <user>(info); //这样做达不到泛型方法的目的了...
}
public interface IPerson
{
string Name { get; set; }
} class User : IPerson
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
} public User(string name)
{
this.name = name;
}
} class Person : IPerson
{
private string name; public string Name
{
get { return name; }
set { name = value; }
} public Person(string name)
{
this.name = name;
}
}public class Test
{
public Test()
{} public string GetName<T>(T t) where T : IPerson
{
return t.Name;
} private void button10_Click(object sender, EventArgs e)
{
User u = new User("aaa");
MessageBox.Show(this.GetName<IPerson>(u));
}
}//泛型方法必须是配合 父类,接口 才有用的,一个单独的类,没有继承任何父类,没有实现任何接口,写个泛型方法是没意义的
你的typeof(string)我就不知道是什么意思,1L的方法是对的