Вот что пишет Рихтер:
Я понял это так:
public class ClassB<T>
{
private T m_field;
public T Field
{
get {
return m_field;
}
set {
m_field = value;
}
}
}
Но такой код работает. Что тогда в этом абзаце имелось ввиду?
В приведенном коде, в свойстве Field используется тип T указанный в классе ClassB<T>.
В тексте же речь шла про собственный параметр типа:
public class ClassB<T>
{
private T m_field;
public U Field<U>
{
get {
return default(U);
}
}
}
И в этом случае компилятор выдаст ошибку:
CS7002: Unexpected use of a generic name
CS7002: Неожиданное использование универсального имени
Сборка персонального компьютера от Artline: умный выбор для современных пользователей