如果我有这样的课程:-
static class Foo {
public static void Bar<T>(T item) { Console.WriteLine(item.ToString(); }
}
我知道在这个例子中没有必要使用 T 因为所有类型都有 ToString() 等等 - 这只是一个人为的例子。我更感兴趣的是引擎盖下发生的以下情况:-
Foo.Bar("Hello");
Foo.Bar(123);
Foo.Bar(new Employee("Isaac"));
我广泛地(认为!)我理解具体化,即如果你制作不同类型的泛型类,例如
List<Int32>
List<String>
List<Employee>
等等然后在编译时(或运行时?)我们最终得到三种实际的具体类型,一种用于指定的每个通用参数。这是否同样适用于我的第一个示例中的方法调用,即我们是否仍然有一个类 Foo 但三个具体化的 Bar 方法,一个用于 String、Int32 和 Employee?