Добрый день!
Хочется унифицировать написание нескольких классов. Если объяснять на кошечках: Принципиально иметь коллекцию объектов. Есть один класс - куб. У него есть метод вычисления объема и несколько свойств. Есть другой класс - цилиндр, у него те же свойства и тот же метод вычисления объема, понятно что реализация отличается. И т.д. Как создать объект класса List чтобы в него могли быть затолканы объекты разных классов? Какой класс указывать при созднии List?
Пока я готовил пример, Вам уже ответили, но на всякий случай добавлю пример
interface IGeometry
{
double VolumeCount();
}
class Sfera : IGeometry
{
double diametr;
public Sfera(double _diametr)
{
diametr = _diametr;
}
public double VolumeCount()
{
return 3.14 * 3 / 4 * diametr * diametr * diametr;
}
}
class Cube : IGeometry
{
double vertexSize;
public Cube(double _size)
{
vertexSize = _size;
}
public double VolumeCount()
{
return vertexSize * vertexSize * vertexSize;
}
}
Соответственно использовать как-то так:
List<IGeometry> lstGeometry = new List<IGeometry>();
lstGeometry.Add(new Cube(20.0));
lstGeometry.Add(new Sfera(10.0));
Можно это решить через интерфейс, всяко это будет лучше чем вариант с List<object>
public interface IHasVolume
{
string Name { get; set; }
double Volume { get; }
}
public class Cube : IHasVolume
{
public double Volume
{
get
{
return 9;
}
}
public string Name { get; set; }
}
public class Cylinder : IHasVolume
{
public double Volume
{
get
{
return 7.4;
}
}
public string Name { get; set; }
}
class Program
{
static void Main(string[] args)
{
//вот используем интерфейс
List<IHasVolume> list = new List<IHasVolume>()
{
new Cube() { Name = "Куб" },
new Cylinder() { Name = "Цилиндр" }
};
list.ForEach(f => Console.WriteLine($"Фигура: {f.Name}={f.Volume}"));
Console.ReadKey();
}
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
К примеру, в шапке сайта отображаются какие-то данные, которые берутся из БДПри переходе на другой маршрут, который обрабатывает другой контроллер,...
На базе PHP+MySQL реализовать сервис приёма статистики игровых данных, в которой содержится: - ID игрока в Facebook - игровое время события - ID устройства...
Есть несколько шаблонов на продажу для opencart и встал вопрос, каким методом пользоваться для выдачи лицензий на эти шаблоны?
Подскажите как в Yii 2 правильно создать поле с множественным значением типа чекбокс и записать его в БД?