Как вывести данные из конструктора? Как сделать, что бы отображались данные из конструктора, который был введен ранее?
Все выводит через нули.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
class Bill {
int _ID;
double _Balance, Persent;
protected int ID {
get { return _ID; }
set { value = _ID; }
}
protected double Balance {
get { return _Balance; }
set { value = _Balance; }
}
public Bill(int ID, double Balance) {
this.ID = ID;
this.Balance = Balance;
Persent = 0.03;
}
public void DisplayBill() {
Console.WriteLine("An identification number: " + ID);
Console.WriteLine("Amount on the bill: " + Balance);
}
public override string ToString() {
return "Bill number: " + ID + "Balance: " + Balance;
}
~Bill() { }
}
class Depositor : Bill {
string _FullName, _Passport;
protected string FullName {
get { return _FullName; }
set { value = _FullName; }
}
protected string Passport {
get { return _Passport; }
set { value = _Passport; }
}
public Depositor(string FullName, string Passport, int ID, double Balance)
: base(ID, Balance) {
this.FullName = FullName;
this.Passport = Passport;
}
public void DisplayDepositor() {
Console.WriteLine("Full name: " + FullName);
Console.WriteLine("Passport: " + Passport);
}
public override string ToString() {
return "Full Name: " + FullName + "Passport seria/number: " + Passport;
}
~Depositor() { }
}
class BillDepositor : Depositor {
double _MaxBill;
string _Password;
protected double MaxBill {
get { return _MaxBill; }
set { value = _MaxBill; }
}
protected string Password {
get { return _Password; }
set { value = _Password; }
}
public BillDepositor(string FullName, string Passport, int ID, double Balance, double MaxBill, string Password)
: base(FullName, Passport, ID, Balance) {
this.MaxBill = MaxBill;
this.Password = Password;
}
public void WithdrawPerHour() {
}
public void Withdraw() {
}
public void ChangePassword() {
}
~BillDepositor() { }
}
class Program {
static void Main() {
BillDepositor BankPerson = new BillDepositor("Alexandr Laketych Milankovich", "TT184675",
1130795, 27000.00,
9999.99, "498sagzba099");
BankPerson.DisplayBill();
BankPerson.DisplayDepositor();
}
}

21 Авг 2019 в 07:00
219 +1
0
Ответы
1

Проблема возникает из-за неправильной реализации свойств в классе Bill и Depositor. Вместо того, чтобы присваивать значение переданное в свойство, нужно наоборот присваивать поле свойства переданному значению.

Исправленный код выглядит следующим образом:

class Bill {
private int _ID;
private double _Balance, Persent;
protected int ID {
get { return _ID; }
set { _ID = value; }
}
protected double Balance {
get { return _Balance; }
set { _Balance = value; }
}
// остальной код остается без изменений
}
class Depositor : Bill {
private string _FullName, _Passport;
protected string FullName {
get { return _FullName; }
set { _FullName = value; }
}
protected string Passport {
get { return _Passport; }
set { _Passport = value; }
}
// остальной код остается без изменений
}

После внесения этих изменений данные из конструктора будут корректно отображаться при вызове методов DisplayBill() и DisplayDepositor().

20 Апр 2024 в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир