Классы и определения интерфейса: < /p>
Код: Выделить всё
interface IQuery { }
interface IQueryProcessor
{
TResult Process(TQuery query)
where TQuery : IQuery;
}
class SomeQuery : IQuery
{
}
< /code>
Некоторый код, который не компилируется: < /p>
class Test
{
void Test(IQueryProcessor p)
{
var query = new SomeQuery();
// Does not compile :-(
p.Process(query);
// Must explicitly write all arguments
p.Process(query);
}
}
< /code>
Почему это? Что мне здесь не хватает? Попробуйте указать аргументы типа
явно. Iquery [*] С помощью этой информации компилятор имеет TreSult и Tquery.
Подробнее здесь: https://stackoverflow.com/questions/851 ... eric-types
Мобильная версия