一个方法要接受多个未知的类,这个参数类型怎么定义?
比如:
public void method(T t){}
这个方法,t是多种未知的类class1、class2等。
这个T怎么定义?
------解决方案--------------------C# code
private void Foo<T>(T obj)
{
}
------解决方案--------------------
public void method<T>(T t){}
------解决方案--------------------
定义了也没用,都不知道是什么类你又怎么去处理它?
至少你要知道它究竟是什么类。
------解决方案--------------------
------解决方案--------------------
这个T代表类型的意思,取决于调用处传递的类型,在编译时,由编译器统一替换。
------解决方案--------------------
不知道是什么类型的话你怎么去调用呢?比如说你调用这个方法需要返回一个字符串,但是你不知道这个方法到底返回什么类型,那你怎么去使用呢?
------解决方案--------------------
C# code
比如泛型方法定义:
void Swap<T>(ref T lhs, ref T rhs)
{
T temp;
temp = lhs;
lhs = rhs;
rhs = temp;
}
调用:
void TestSwap()
{
int a = 1;
int b = 2;
Swap<int>(ref a, ref b);
System.Console.WriteLine(a + " " + b);
}
------解决方案--------------------
C# code
public void method(params object[] objs){}
------解决方案--------------------
------解决方案--------------------
那些个类有关系吗?
class Class1 : ClassBase
{}
class Class2 : ClassBase
{}
class ClassBase
{}
你可以这样做。
public void Func<T>(T args)
{
ClassBase cb = args as ClassBase;
//后续操作
}