Вот вопрос, который мне задают довольно часто:
public class C { public static void DoIt<t>(T t) { ReallyDoIt(t); } private static void ReallyDoIt(string s) { System.Console.WriteLine("строка"); } private static void ReallyDoIt<t>(T t) { System.Console.WriteLine("всё остальное"); } }
Что происходит при вызове C.DoIt<string>? Многие люди ожидают, что выведется «строка» в то время, как на самом деле всегда печатается «всё остальное», независимо от того, какой T использовать.
Почему? Читайте в блоге Эрика Липперта.
Комментариев нет:
Отправить комментарий