Не передаёт значение
Не передаёт значение DiscountOneHourse, хотя я записал число 20.
При выводе выдаёт число 0.

class Program{
//Прайс-лист.
else if (Console.ReadKey(true).Key == ConsoleKey.D2) {
Console.Clear();
Console.WriteLine("Прайс-лист:\n ");
PriceList priceList = new PriceList(150, 275, 700); //Цена за: 1 час, 2 часа и всю ночь.
//Персональная скидка.
PriceList DiscountOneHourse = new PriceList(20);
Console.WriteLine(priceList.PriceListAndDiscount);
}
}
public class PriceList{
public PriceList(int discountOneHourse)
{
DiscountOneHourse = discountOneHourse;
}
public string PriceListAndDiscount
{
get
{
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine($"1. Один час: {OneHourse} рублей" +
$"\n2. Два часа: {TwoHourse} рублей" +
$"\n3. Вся ночь: {AllNight} рублей" +
$"\nКакой вариант выбираете?");
if (Console.ReadKey(true).Key == ConsoleKey.D1) {
Console.WriteLine($"Ваша скидка составляет: {DiscountOneHourse}%. Приятного сеанса.");
}
//else if (Console.ReadKey(true).Key == ConsoleKey.D2) {
// Console.WriteLine($"Ваша скидка составляет: {DiscountTwoHourse}%. Приятного сеанса.");
//}
//else if (Console.ReadKey(true).Key == ConsoleKey.D3) {
// Console.WriteLine($"Ваша скидка составляет: {DiscountAllNight}%. Приятного сеанса.");
//}
return "";
}
set { }
}
}
Ответы (2 шт):
Я предполагаю что у Автора есть свойство DiscountOneHourse в классе PriceList, если это так то перепишите
//Персональная скидка.
PriceList DiscountOneHourse = new PriceList(20);
на
priceList.DiscountOneHourse = 20;
Уточните задачу. Если вы хотите выставить скидку сразу для всех экземпляров класса, то у вас должно быть статическое поле DiscountOneHourse в классе PriceList, тогда оно будет одинаковое для всех экземпляров. Но выставлять его при этом надо, конечно, через статическое же свойство или статический метод класса, а не с помощью создания нового экземпляра класса.
Если же это индивидуальная скидка, то выставлять её надо с помощью поля или метода в том экземпляре класса, для которого вы делаете эту скидку, т.е. в priceList, а не создавать новый экземпляр класса, у которого будет своё поле DiscountOneHourse, про содержимое которого экземпляр класса priceList конечно же ничего не знает.
То есть в первую очередь вам нужно уточнить задачу и поправить архитектуру.