[C#中setter方法中的随机方法

问题描述 投票:0回答:1

我是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。

我在这里错过了什么?

-谢谢

c# random
1个回答
3
投票

“ value”(您的上一次分配)是调用设置器时收到的值。

当前“赏金”设置了两次:首先是随机生成器的结果,然后是“值”。因此,第一个值集会丢失并且无法在任何地方使用。

尽管如此,属性设置器并不是执行您想要的操作的正确位置,我认为您对如何使用属性和后备字段有根本的误解。

© www.soinside.com 2019 - 2024. All rights reserved.