8. Car Salesman
Колеги, днес възможното си време за решаване на задачи го посветих изцяло на тази задача. И понеже "много добре" ги разбирам класовете, ще бъда в отпуска специално заради тях. Найстина ще бъда благодарна, ако поне успея да си разреша проблема, който ми се появи в тази задача. Прегледах четири видеа, но така и не видях някъде трейнър да обяснява точно тази задача. Търсих информация и в https://stackoverflow.com/ , но за жалост всичко беше напразно за разрешаването на проблема ми и за това моля за помощ. Предварително ще отбележа, че все пак днес успях да направя поне едно работещо решение, което не мога да приема и за това се опитвам да го коригирам. Не разбирам защо трябва да проверявам в main дали някои от подадените ми стойностти е стринг или цифра за да разбера дали имам Displacement- 50 примерно или Efficiency- А+. За мен най-удачния вариант е проверката да става директно с конструктори с int или string, но след като направя конструкторите не успявам на int пропърти да сетна дефоутната стойност- "n/a". Ако примерно още първоначално направя всички пропъртите на string сетването на "n/a" е възможно, но ми се разваля смисъла на конструкторите, защото програмата няма да разбере дали искам да му подам string this.Displacement или string this.Efficiency. Дори при това положение програмата изисква от мен да изтрия единия от конструкторите, а аз искам да си ги запазя. Има ли такава възможност да се промени синтаксиса, но да се запази основната логика и самите конструктори? Ако дефултните стойности бяха int предполагам, че програмата щеше да работи коректно, но те са string.
public Car(string model, Engine engine)
{
this.Model = model;
this.Engine = engine;
this.Weight = "n/a"; // this is wrong, this.Weight is int
this.Color = "n/a";
}
Същия проблем имам и с конструктора за Engine, защото this.Displacement е int и не може да е равно на string "n/a".
public Engine(string model, string power)
{
this.Model = model;
this.Power = power;
this.Displacement = "n/a"; // this is wrong, this.Dispalacement is int
this.Efficiency = "n/a";
}
Моят опит:
клас Car- https://pastebin.com/r3qkAtSe
клас Engine- https://pastebin.com/TmhitANe
Main- https://pastebin.com/g1X9PhXb
Условие- Условие: https://softuni.bg/trainings/resources/officedocument/52737/defining-classes-exercise-csharp-advanced-september-2020/3007