Предполагая, что это применимо:Ковариантное использование универсального класса Ленивый в C#
public class Cat : Animal { }
и предполагая, что у меня есть метод:
public void Feed(Animal animal) { ... }
И я могу назвать это таким образом:
var animal = new Cat();
Feed(animal);
Как это получить, если Feed
реорганизован только для поддержки Lazy<Animal>
в качестве параметра? Я хотел бы как-то передать мой var lazyAnimal = new Lazy<Cat>();
.
Это, очевидно, не работает:
var lazyAnimal = new Lazy<Cat>();
Feed(lazyAnimal);
Спасибо, Я должен был упомянуть (я хотел, чтобы все было просто), что этот класс на самом деле является конструктором? :) Это больше похоже ... «FeedMachine», который я не могу сделать родовым. Однако я бы проверял подход 'Func'. – thmshd
@ thomasjaworski.com: Не уверен, что вы подразумеваете под «этот класс на самом деле является конструктором» - вы имеете в виду этот метод? Вы всегда можете написать статический универсальный метод, который называется конструктором ... –