//就是先得到它的类型了。
Type type = t.GetType();
//获取此类型下的方法。参数一是方法名,参数二指定了,只取公有并且是实例的方法。
MethodInfo mi = type.GetMethod("Show", BindingFlags.Public | BindingFlags.Instance);
//触发方法,参数一是此方法所在的实例(如果是静态方法传null),参数二是此方法的参数组。
mi.Invoke(t, new object[] {s} );
public void SayPlay <T,S>(T t,S s)
{
Type type = t.GetType();
MethodInfo mi = type.GetMethod("Show", BindingFlags.Public | BindingFlags.Instance);
mi.Invoke(t, new object[] {s} );
}
public void SayPlay <T,S>(T t,S s)
{
Type type = t.GetType();
MethodInfo mi = type.GetMethod("Show", BindingFlags.Public | BindingFlags.Instance);
mi.Invoke(t, new object[] {s} );
}
[/Quote]
public void SayPlay <T,S>(T t,S s)
{
Type type = t.GetType();
MethodInfo mi = type.GetMethod("Show", BindingFlags.Public | BindingFlags.Instance);
mi.Invoke(t, new object[] {s} );
}
谢谢各位现在对泛型有点了解了,下面是我根据各位的提示写的例子,但还有点疑问
namespace Zhnet
{
class Program
{
static void Main()
{
Class1 class1 = new Class1();
S_Class s = new S_Class();
T_Class t = new T_Class();
class1.SayPlay <T_Class ,S_Class >(t,s); //泛型方法
t.Show(s); //实例方法
Console.ReadLine();
}
}
//定义一个接口
public interface Iddfd<S>
{
void Show(S s);
}
public class Class1
{
public void SayPlay<T,S>(T t,S s) where T :Iddfd<S>
{
t.Show(s);
}
}
public class S_Class
{
public S_Class()
{
name = "中国人";
}
public string name { get; set; }
}
///************************************************************
//我是不是必须在类的定义这里写继承与该接口,如果该类是我不能修改的怎么办
///************************************************************
public class T_Class : Iddfd<S_Class>
{
public void Show(S_Class s)
{
Console.WriteLine(s.name );
}
}
}