Написать метод установки/считывания полей - C#
Формулировка задачи:
есть код. сначало был написан с массивом с параметрами
надо переделать. написать метод
установки/считывания полей (можно использовать свойства, в т.ч. автоматические)
изучаю С# недавно и мой метод не работает. куча ошибок. вот кодnamespace zadanie2_1
{
class Program
{
static void Main(string[] args)
{
bool f = true;// для сравнвания
Pokupka[] prod = new Pokupka[6];//
prod[0] = new Pokupka();
prod[1] = new Pokupka();
// SuperPokupka[] prod = new SuperPokupka[2]; далее объекты нового класса
prod[2] = new SuperPokupka();
prod[3] = new SuperPokupka();
// SuperPokupka[] prod = new UltraPokupka[2]; далее объекты нового класса
prod[4] = new UltraPokupka();
prod[5] = new UltraPokupka("limon", 4, 10);
// foreach (var element in prod)
// {
// element.Chtenie();
// }
for (int i = 0; i < prod.Length; i++)
{
prod[i].Chtenie();
};
Pokupka maxP = prod[0];// перемен. объект для нахождения макс покупки
for (int i = 0; i < prod.Length; i++)
{
Console.WriteLine(prod[i]);//вывод массива
if (maxP.GetCost() < prod[i].GetCost())// нахождение макс покупки
{
maxP = prod[i];
}
f &= prod[0].Equals(prod[i]); // сравниваем с первым все и через &= записывае значение в f, если хоть раз встретитя false то в f и останется false
};
Console.WriteLine();
Console.WriteLine("Все покупки равные? Ответ:" + f);
Console.WriteLine();
Console.WriteLine(" макс. покупкa : " + maxP);
Console.ReadKey();
}
}
}namespace zadanie2_1
{
class Pokupka
{
private string name="";// название покупки
private double cena=0;//цена
private int kol=0;// количество
public Pokupka(string newName, double newCena, int newKol)//конструктор
{
Cena = newCena;
Name = newName;
Kol = newKol;
}
public Pokupka()//констр по умолч
{
}
public string Name
{
get
{
return name;
}
set
{
if (name != "") name = value;
}
}
public double Cena
{
get
{
return cena;
}
set
{
if (value >= 0) cena = value;
}
}
public int Kol
{
get
{
return kol;
}
set
{
if (value >= 1) kol = value;
}
}
public virtual double GetCost()//вычисл стоимость покупки
{
return (Cena * Kol);
}
public void Chtenie();
{
System.Console.WriteLine("Enter name:");
Name = System.Console.ReadLine();
System.Console.WriteLine("Enter cena:");
Cena = Convert.ToDouble(Console.ReadLine());
System.Console.WriteLine("Enter kol:");
Kol = Convert.ToInt32(System.Console.ReadLine());
}
public override string ToString()//метод для вывода, больше переопределять не надо
{
return string.Format("{0};{1};{2};{3};", Name, Cena, Kol, GetCost());
}
public override bool Equals(object obj)//переопределяем метод для сравнивания по двум полям
{
var other = obj as Pokupka;
if (other == null) return false;
return name == other.name && Math.Abs(cena - other.cena) < 0.01;
}
}
}namespace zadanie2_1
{
class SuperPokupka : Pokupka
{
public SuperPokupka(string newName, double newCena, int newKol)
{
Cena = newCena;
Name = newName;
Kol = newKol;
}
public SuperPokupka()//констр по умолч
{
}
public override double GetCost()//стоимость со скидкой
{
return ((Cena - 1) * Kol);
}
}
}namespace zadanie2_1
{
class UltraPokupka : Pokupka
{
int k = 10;// для скидки
public UltraPokupka(string newName, double newCena, int newKol)
{
Cena = newCena;
Name = newName;
Kol = newKol;
}
public UltraPokupka()//констр по умолч
{
}
public override double GetCost()//стоимость со скидкой если больше или равно k
{
if (Kol >= k)
{ return (Cena * Kol * (1 - 0.10)); }
else
{ return (Cena * Kol); }
}
}
}Решение задачи: «Написать метод установки/считывания полей»
textual
Листинг программы
public void Chtenie()
{
Console.WriteLine("Enter name:");
Name = Console.ReadLine();
Console.WriteLine("Enter cena:");
Cost = int.Parse(Console.ReadLine());
Console.WriteLine("Enter kol:");
Amount = int.Parse(Console.ReadLine());
}