读书人

一个方法要接受多个未知的类这个参数

发布时间: 2012-09-08 10:48:07 作者: rapoo

一个方法要接受多个未知的类,这个参数类型怎么定义?
比如:
public void method(T t){}
这个方法,t是多种未知的类class1、class2等。
这个T怎么定义?

[解决办法]

C# code
        private void Foo<T>(T obj)        {        }
[解决办法]
public void method<T>(T t){}

[解决办法]
定义了也没用,都不知道是什么类你又怎么去处理它?

至少你要知道它究竟是什么类。
[解决办法]
探讨
比如:
public void method(T t){}
这个方法,t是多种未知的类class1、class2等。
这个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){}
[解决办法]
探讨
比如:
public void method(T t){}
这个方法,t是多种未知的类class1、class2等。
这个T怎么定义?

[解决办法]
那些个类有关系吗?
class Class1 : ClassBase
{}
class Class2 : ClassBase
{}
class ClassBase
{}
你可以这样做。
public void Func<T>(T args)
{
ClassBase cb = args as ClassBase;
//后续操作
}

读书人网 >C#

热点推荐