Мне нужна универсальная функция, которая работала бы с типами, имеющими свойства Top
, Bottom
, Right
и Rect
только для чтения - у меня много таких классов в сторонней библиотеке.
Я написал это:
internal class MyTemplate<WhatType> {
internal static void Work( WhatType what )
{
int left = what.Left;
}
};
и я ожидаю, что это сработает - эквивалентный код на C ++ будет работать нормально. Однако объекты C #:
ошибка CS1061: «WhatType» не содержит определения для «Left», и нет никакого метода расширения «Left», принимающего первый аргумент типа «WhatType» (вы пропустили директиву using или ссылку на сборку?)
Я не понимаю - почему он пытается создать экземпляр шаблона, прежде чем я его даже назову? Конечно, тип WhatType
еще не известен, и поэтому свойства не могут быть найдены.
Что я делаю не так и как мне это исправить?