Как вывести данные из конструктора? Как сделать, что бы отображались данные из конструктора, который был введен ранее?
Все выводит через нули.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
199 +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
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 96 005 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир