Перегрузка параметров универсального типа запрещена?

Это отчасти любопытство, а отчасти потому, что я просто пытался использовать это. Если у вас есть следующие определения, это не разрешено компилятором, потому что он говорит, что член уже определен. В чем причина запрета эксклюзивных перегрузок параметров универсального типа?

void Get<T>() where T: struct {}
void Get<T>() where T: class {}

Мне кажется, что в этом нет никакой внутренней проблемы. Кто-то может возразить, что не всегда ясно, какой компилятор должен выбрать в случаях, когда определения перекрываются (но обычное разрешение кажется наиболее конкретным совпадением в первую очередь).

Может ли кто-нибудь помочь мне понять или указать ресурс, по какой причине запрещается это?

5
задан Abel 8 March 2012 в 15:37
поделиться