参数类型破坏了我的Func <shui> </shui>

时间:2012-01-17 01:21:44

标签: c# generics

我因为试图在标题中使用单词问题而大喊大叫,所以这就是我想出来的。无论如何,这是关于参数类型的纯学术问题。

好的,所以这就是我得到的。

using System;
namespace TypeParamTest 
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            PrintType(1, new object());
            Console.ReadKey();
        }
        static void PrintType<T, Ttwo>(T first, Ttwo second)
        {
            Console.WriteLine(typeof(T) + " : " + typeof(Ttwo));
        }
    }
}

这对我来说是清楚明确的(敏锐的读者会认为这是C# in Depth第249页上的一个例子的简单扩展)。我完全了解正在发生的事情,编译器说有一些类型(为T定义,然后为Ttwo定义)。我不明白的是为什么在第65页上示例只有一个类型参数。

List<TOutput> ConvertAll<TOutput>(Converter<T, TOutput> conv);

在这种情况下,编译器如何了解T

1 个答案:

答案 0 :(得分:9)

我们没有足够的信息可以回答。也许T是在周围的类上定义的?

public class SomeClass<T> {
    List<TOutput> ConvertAll<TOutput>(Converter<T, TOutput> conv);
}

如果这是List<T>的{​​{3}}方法的示例,那么我的建议是这样的。