Можно ли преобразовать переменную из одного типа в другой?
Я имею класс Service
public class Service
{
public int Mass { get; set; }
public int Mat { get; set; }
public int SelCar { get; set; }
public Service(int mat, int mass, int carCategories)
{
Mass = mass;
Mat = mat;
SelCar = carCategories;
}
public override string ToString()
{
return $"Your order: Material-- { (Material.Materiale)Mat}, Massa--{Mass}, Car--{(Car.Carr)SelCar}";
}
}
У класса Service два наследника:
class ServicePeople : Service
{
private int quantity;
// private int CarCategories = ;
public ServicePeople(int mat, int mass, int carCategories) : base( mat, mass,carCategories)
{
}
public override string ToString()
{
return base.ToString();
}
}
class ServiceOfBigMass: Service
{
public ServiceOfBigMass(int mat, int mass, int carCategories) : base(mat, mass, carCategories)
{
}
public override string ToString()
{
return base.ToString();
}
}
Главный класс:
static void Main(string[] args)
{
//var ser = new ServicePeople(1,2,3);
Console.WriteLine($"What are we going to transport?"+
$"\n 1--{Material.Materiale.SAND},\n 2--{Material.Materiale.STONE},\n 3--{Material.Materiale.WOOD},\n" +
$" 4--{Material.Materiale.PEOPLE},\n 5--{Material.Materiale.PRODUCTS},\n 6--{Material.Materiale.TOOLS}");
int Mat = int.Parse(Console.ReadLine());
Console.WriteLine("Enter mass/quantity!");
int Mass = int.Parse(Console.ReadLine());
var clien1 = new Client("Artemiy","Bogdanov");
int vall = clien1.SelectMaterial(Mat);
Console.WriteLine("Thanks for your choosing us!");
ServicePeople ser = new ServicePeople(Mat,Mass,vall);
Console.WriteLine(ser);
}
Так же у меня есть класс Car в котором есть 3 вида машин под каждые авто под каждые задачи:
class Car
{
public enum Carr : int
{
TRUCK = 1,
PASSANGER_CAR = 2,
BUS = 3
}
public Carr SelCar
{
get
{
return SelCar;
}
set
{
}
}
}
Выбор материала:
class Material
{
public enum Materiale : int
{
SAND = 1,
STONE = 2,
WOOD = 3,
PEOPLE = 4,
PRODUCTS = 5,
TOOLS = 6
}
public Client(String Name, String SecondName)
{
name = Name;
secondName = SecondName;
}
public string GetClient
{
get
{
return $"{name} {secondName}";
}
}
public int SelectMaterial(int mat)// В зависимости от выбора
//материала подставляется вид авто.
{
switch (mat)
{
case 1://выбрал SEND значит приедет TRUCK
v = 1;
break;
case 2:
v = 1;
break;
case 3:
v = 1;
break;
case 4://выбрал PEOPLE значит приедет BUS
v = 3;
break;
case 5:
v = 2;
break;
case 6:
v = 2;
break;
}
return v;
}
public static Service Select(int mat, int mass, int carCategories)
{
if(mat ==1)
{
ServiceOfBigMass ser = new ServiceOfBigMass( mat, mass, carCategories);
return ser;
}else if (mat == 2)
{
ServiceOfBigMass ser = new ServiceOfBigMass(mat, mass, carCategories);
return ser;
}
else if (mat == 3)
{
ServiceOfBigMass ser = new ServiceOfBigMass(mat, mass, carCategories);
return ser;
}
else if (mat == 4)
{
ServicePeople ser = new ServicePeople(mat, mass, carCategories);
return ser;
}
else if (mat == 5)
{
ServiceOfSmallMass ser = new ServiceOfSmallMass(mat, mass, carCategories);
return ser;
}
else if (mat == 6)
{
ServiceOfSmallMass ser = new ServiceOfSmallMass(mat, mass, carCategories);
return ser;
}
Service ser2 = new Service(1,1,1);
return ser2;
}
Как я могу изменить ServicePeople на ServiceOfBigMass?
Клиент выберит услуги по перевозке WOOD, я ему пришлю TRUCK, но услуга останеться быть ServicePeople. Может я вообще намудрил. Начал недавно.