class test <T> where T : class
{
public void Write<T>()
{
Console.Write(typeof(T).FullName);
}
}在上面的类中,可以为类(test<string> Test = new test<string>)传入一个字符串,然后为方法传入int?如果是,输出是什么?如果不是,这会导致什么问题?尽管经常使用泛型(在我自己的类中)和泛型集合,但我并没有真正尝试过这一点。
我编写/查看泛型类的方法如下:
class <T> where T : class
{
public T Write()
{
Console.Write(T.ToString());
}
}发布于 2009-05-05 22:46:33
因为它最初是写的,不,你不能。为了在类中的不同点使用不同的类型,必须有多个泛型参数。可以在方法级别定义一个不同的方法,并使您的样本正常工作
class Test<T> where T : class {
public void Write<U>(U arg1) {
Console.WriteLine(arg1.ToString());
}
}用法
var t = new Test<string>();
t.Write(42);正如Scott指出的,您可以使用相同的命名参数。尽管这样做会引起警告,而且通常会让人感到困惑。对于当前作用域中的所有泛型参数,使用不同的名称要清晰得多。
发布于 2009-05-05 22:45:17
您可能希望在方法中为类单独声明一个类型变量-
class Test<T> where T : class {
public void Method<U>(U val) {
Console.WriteLine(typeof(U).FullName);
}
}https://stackoverflow.com/questions/827240
复制相似问题