一个方法要接受多个未知的类,这个参数类型怎么定义?
比如:
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;
//后续操作
}