Код: Выделить всё
public interface IShapes
{
public void Draw();
}
public class Square : IShapes
{
public void Draw()
{
Console.WriteLine(GetType().FullName?.Substring(GetType().FullName.IndexOf('.') + 1) + " - Draw");
}
}
public class Circle : IShapes
{
public void Draw()
{
Console.WriteLine(GetType().FullName?.Substring(GetType().FullName.IndexOf('.')+1) + " - Draw");
}
}
Таким образом, в другом месте я мог бы вызвать такой вызов (чтобы следовать примеру кода выше):
Код: Выделить всё
var shapes = new List();
shapes.Add(new Circle());
shapes.Add(new Square());
shapes.ForEach((s) =>
{
s.Draw();
});
Я попробовал изменить интерфейс на класс (и абстракт), но мне кажется, что я упускаю что-то очевидное.
Я также пытался в классах Square и Circle: Shapes определить новые публичные методы void Draw(), которые вызывают base. Draw() напрямую, но это тоже не работает.
Подробнее здесь: https://stackoverflow.com/questions/787 ... eusability