У меня есть абстрактный обобщенный класс
public abstract class Foo<TType>
с абстрактным методом
public abstract object DoSomething(TType arg = default(TType)) {}
Теперь унаследованный класс
public class BabyFoo : Foo<string>
когда я хочу переопределить DoSomething и начать набирать «override», чтобы заставить intellisense / generator написать скелет метода, который я ожидал
public override object DoSomething(string arg = default(string))
или даже
public override object DoSomething(string arg = null)
но буквально приходит
public override object DoSomething(string arg = default(TType))
Вначале я думал, что это ошибка VS2010, поскольку необязательные параметры являются новыми для c #, но кто-нибудь может сказать мне, если есть реальная причина, по которой (ссылочные типы против типов значений ??) IDE генерирует этот код? *