Есть интерфейс IRepository:
public interface IRepository
где BaseModel- базовый класс для моделей.
Есть провайдер к базе данных, который реализует этот интерфейс:
public class Provider
Есть ли необходимость указывать ограничение на T в случае провайдера, если оно уже указано на уровне интерфейса?
Ответ
Ну очень странный вопрос. Да нужно, потому что без него не компилируется:
http://ideone.com/zfhSDo
public class Provider
prog.cs(6,14): error CS0314: The type `T' cannot be used as type parameter `T' in the generic type or method `IRepository'. There is no boxing or type parameter conversion from `T' to `BaseModel'
prog.cs(5,30): (Location of the symbol related to previous error)
http://ideone.com/I26aUP
public class Provider
А тут всё хорошо.
Комментариев нет:
Отправить комментарий