Я пытаюсь написать игру и использую перечисление для хранения цветов краски.Перечисление продолжает возвращать значение по умолчанию вместо значения поля.Есть ли способ предотвратить это?
Это приложение C # .NET Forms, для .NET Framework 4.6.1.
Вот мой код:
public enum PaintColor
{
Red,
Orange,
Yellow,
Green,
Blue
}
class Form1 : Form
{
private void Form1_Load(Object sender, EventArgs e)
{
PaintBucket orange = new PaintBucket()
{
Color = PaintColor.Orange,
Amount = 22
};
Label OrangeContent = new Label
{
Text = (orange.ToString()),
Width = 100,
Height = 20,
Top = 500,
Left = 500
};
Controls.Add(OrangeContent);
}
}
А вот определение PaintBucket
класса:
public class PaintBucket
{
public event EventHandler WriteToFile;
PaintColor color = PaintColor.Red;
int amount = 0;
public PaintBucket()
{
}
public PaintBucket(PaintColor col, int amnt)
{
this.Color = col;
this.Amount = amnt;
}
public PaintColor Color
{
get => color;
set{}
}
public int Amount
{
get => amount;
set{}
}
protected virtual void OnWriteToFile(EventArgs e)
{
WriteToFile(this, e);
}
public override string ToString()
{
return (this.Color.ToString() + ", " + this.Amount.ToString());
}
}
Как вы можете видеть выше, поле orange
содержит оранжевый PaintBucket
.Метка OrangeContent
, содержит orange.ToString
.Но это проявляется как Red, 0
вместо Orange, 22
.Красный является значением по умолчанию для перечисления, а 0 является значением по умолчанию для целого числа.Есть ли способ вернуть значение полей вместо значения по умолчанию?