我是C#的新手。我试图弄清楚如何在setter内部使用随机方法。这是我的代码现在的外观:
public class star_wars_figures
{
private string charactor;
private int bounty;
public star_wars_figures(string charactor)
{
Charactor = charactor; }
public string Charactor
{
get
{
return charactor.ToUpper();
}
set
{
if (value == "Han Solo" || value == "Leia")
{
charactor = value;
}
else charactor = "INCORRECT CHARACTOR!!!!";
}
}
public int Bounty
{
get
{
return bounty;
}
set
{
Random rnd = new Random();
bounty = rnd.Next(1, 10);
bounty = value;
}
}
}
我主要是满足以下条件:
star_wars_figures sw1 = new star_wars_figures("Han Solo");
Console.WriteLine($"Character is: {sw1.Charactor}");
Console.WriteLine($"Money: {sw1.Bounty}");
我正在尝试使用bounty属性的setter方法生成一个随机的int数。它仅返回0。
我在这里错过了什么?
-谢谢
“ value”(您的上一次分配)是调用设置器时收到的值。
当前“赏金”设置了两次:首先是随机生成器的结果,然后是“值”。因此,第一个值集会丢失并且无法在任何地方使用。
尽管如此,属性设置器并不是执行您想要的操作的正确位置,我认为您对如何使用属性和后备字段有根本的误解。