Если у меня есть структура типа Bag, которая реализует интерфейс IGetProps, и у меня есть класс Store, у которого есть переменная-член типа Bag, могу ли я указать в реализации Store, что я хочу, чтобы класс Store предоставлял IGetProps через своего члена type сумка.C#: Можно ли назначить класс-член класса исполнителем унаследованного интерфейса?
Сумка не может быть изменена на класс, чтобы я мог наследовать ее. IGetProps имеет много методов, поэтому я не хочу явно переносить каждый метод с помощью метода в Store.
например:
interface IGetProps
{
int GetA();
int GetB();
}
struct Bag : IGetProps
{
public int GetA() { return 0;}
public int GetB() { return 1;}
... // Many more methods
}
class Store : IGetProps
{
private Bag bag; // <--- Can I designate bag to be the provide of IGetProps for Store?
}
Нет, вы не можете. Однако вы можете наследовать магазин из сумки. – dgorti
Класс @dgorti не может наследовать от структуры. http://stackoverflow.com/questions/15408667/inherit-from-struct – Nico
Почему 'Bag' является структурой? Поскольку вы указываете, что у нее есть _Many more methods_, это, по-видимому, указывает на то, что вместо этого следует использовать 'class', поскольку структуры, как правило, предназначены для моделирования неизменяемых объектов с семантикой типа значений. –