我因为试图在标题中使用单词问题而大喊大叫,所以这就是我想出来的.无论如何,这是关于参数类型的纯学术问题.
好的,所以这就是我得到的.
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));
}
}
}
Run Code Online (Sandbox Code Playgroud)
这对我来说是清楚明确的(敏锐的读者会认为这是在深度C#第249页上找到的一个例子的简单扩展).我完全了解正在发生的事情,编译器说有一些类型(要定义T,然后为Ttwo).我不明白的是为什么在第65页上示例只有一个类型参数.
List<TOutput> ConvertAll<TOutput>(Converter<T, TOutput> conv);
Run Code Online (Sandbox Code Playgroud)
T在这种情况下,编译器如何知道?
我们没有足够的信息可以回答.也许T是在周围的类上定义的?
public class SomeClass<T> {
List<TOutput> ConvertAll<TOutput>(Converter<T, TOutput> conv);
}
Run Code Online (Sandbox Code Playgroud)
如果这是一个例子List<T>的ConvertAll方法,那么我的建议是上述的情况.
| 归档时间: |
|
| 查看次数: |
142 次 |
| 最近记录: |