首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >泛型类和泛型方法

泛型类和泛型方法
EN

Stack Overflow用户
提问于 2009-05-05 22:42:15
回答 2查看 4.3K关注 0票数 1
代码语言:javascript
复制
class test <T> where T : class
{
    public void Write<T>()
    {
        Console.Write(typeof(T).FullName);
    }
}

在上面的类中,可以为类(test<string> Test = new test<string>)传入一个字符串,然后为方法传入int?如果是,输出是什么?如果不是,这会导致什么问题?尽管经常使用泛型(在我自己的类中)和泛型集合,但我并没有真正尝试过这一点。

我编写/查看泛型类的方法如下:

代码语言:javascript
复制
class <T> where T : class
{
    public T Write()
    {
        Console.Write(T.ToString());
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-05-05 22:46:33

因为它最初是写的,不,你不能。为了在类中的不同点使用不同的类型,必须有多个泛型参数。可以在方法级别定义一个不同的方法,并使您的样本正常工作

代码语言:javascript
复制
class Test<T> where T : class {
  public void Write<U>(U arg1) {
    Console.WriteLine(arg1.ToString());
  }
}

用法

代码语言:javascript
复制
var t = new Test<string>();
t.Write(42);

正如Scott指出的,您可以使用相同的命名参数。尽管这样做会引起警告,而且通常会让人感到困惑。对于当前作用域中的所有泛型参数,使用不同的名称要清晰得多。

票数 3
EN

Stack Overflow用户

发布于 2009-05-05 22:45:17

您可能希望在方法中为类单独声明一个类型变量-

代码语言:javascript
复制
class Test<T> where T : class {

    public void Method<U>(U val) {
        Console.WriteLine(typeof(U).FullName);
    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/827240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档