Этот вопрос похож на этот . Разница в том, что я хотел бы иметь два базовых класса.
Пример:
public class Circle
{
private string _radius { get; set; }
public Circle Radius(string radius)
{
_radius = radius;
return this;
}
}
public class Box
{
private string _width { get; set; }
public Circle Width(string width)
{
_width = width;
return this;
}
}
public class CircleAndBox : Circle, Box // Can't do in c#
{
// should contain methods from both Circle and Box, but return CircleAndBox
}
Возможно, Circle and Box был не лучшим примером. В основном они представляют собой классы с разными свойствами и методами. Класс CircleAndBox просто имеет те же свойства и методы, что и Circle и Box. CircleAndBox может иметь дополнительные свойства и методы, которых нет ни в Circle, ни в Box.
Желаемый результат
Я должен уметь писать:
var circle = new Circle().Radius("5");
var box = new Box().Width("6");
var circleAndBox = new CircleAndBox().Radius("5").Width("6");
Было бы здорово, если бы:
Когда я добавляю метод в класс Circle
или Box
, я не должен касаться класса CircleAndBox
. Как и при обычном наследовании от одного класса, CircleAndBox
должен автоматически наследовать все общедоступные методы как от Circle
, так и от Box
.Width("6")
?? а что с.Width("BigFat")
?? - person Federico Berasategui   schedule 03.08.2013new CircleAndBox().Radius("5").Width("6");
Это так бегло, что я даже не понимаю, что это значит. - person spender   schedule 03.08.2013CircleAndBox
: P (сомневаюсь!) - person Sayse   schedule 03.08.2013Box : Shape
иCircle : Shape
с общими методами вShape
? - person Sayse   schedule 03.08.2013CircleAndBox
звучит как фантастическое нарушение принципа замены Лискова. - person David   schedule 03.08.2013Circle
иBox
были не лучшим примером. В основном они представляют собой классы с разными свойствами и методами. КлассCircleAndBox
просто имеет те же свойства и методы, что иCircle
иBox
.CircleAndBox
может иметь дополнительные свойства и методы, которых нет ни вCircle
, ни вBox
. Я добавлю это в описание вопроса - person Dmitry Efimenko   schedule 03.08.2013