首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

一个方法要接受多个未知的类,这个参数类型如何定义

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

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

热点排行