Я создал класс с автоматическим свойством для переменной типа BagsOfFeed
. Я добавил автоматическое свойство, чтобы предотвратить изменение значения извне класса.
Я использую другое свойство, которое вычисляет BagsOfFeed
, только когда установлено свойство NumberOfCows
. Я столкнулся с проблемой, когда делаю BagsOfFeed
только для чтения, это не позволяет свойству NumberOfCows
присвоить значение BagsOfFeed
.
вот код класса
namespace cow_calculator1
{
class Farmer
{
public Farmer(int numberOfCows, int feedMultiplier)
{
this.feedMultiplier = feedMultiplier;
NumberOfCows = numberOfCows;
}
public int BagsOfFeed { get { return BagsOfFeed; } }
private int feedMultiplier;
public int FeedMultiplier
{
get
{
return feedMultiplier;
}
}
private int numberOfCows;
public int NumberOfCows
{
get
{
return numberOfCows;
}
set
{
numberOfCows = value;
BagsOfFeed = numberOfCows * FeedMultiplier;
}
}
}
}
это код формы
namespace cow_calculator1
{
public partial class Form1 : Form
{
Farmer farmer;
public Form1()
{
InitializeComponent();
farmer = new Farmer(15, 30);
}
private void calculate_Click(object sender, EventArgs e)
{
Console.WriteLine("I need {0} bags of feed for {1} cows", farmer.BagsOfFeed, farmer.NumberOfCows);
}
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
farmer.NumberOfCows = (int) numericUpDown1.Value;
}
}
}
это ошибка
Ошибка 1 Свойство или индексатор cow_calculator1.Farmer.BagsOfFeed нельзя присвоить - он доступен только для чтения («Строка 38» «Столбец 17» калькулятор коров1)