2

Adventurerメソッドを使用して のインスタンスを作成し、それを に追加したいと思いますList<Adventurer>。for ループは の 20 個のインスタンスを作成しますAdventurer。かなりの数の値を渡すため、コンストラクターの使用を避けようとしています。私がやろうとしていることが不可能な場合は、コンストラクターの使用に戻る必要があります。

の新しいインスタンスを作成し、AdventurerrandomGenderrandomClass、およびnameを割り当てるには、このメソッドが必要です。この時点で、方法がわかりません。また、このメソッドは何度も呼び出されるため、新しいインスタンスを作成して手動で名前を付けることはできません。

    public static Adventurer createAdventurer()
    {
        Array valuesGender = Enum.GetValues(typeof(AdventurerGender));
        AdventurerGender randomGender = (AdventurerGender)valuesGender.GetValue(rand.Next(valuesGender.Length));

        Array valuesClass = Enum.GetValues(typeof(AdventurerClass));
        AdventurerClass randomClass = (AdventurerClass)valuesClass.GetValue(rand.Next(valuesClass.Length));

        string name = "Test " + AdventurerManager.AvaliableAdvList.Count.ToString();

        return new Adventurer();
    }

これが私のforループです:

        for (int i = 0; i < 20; i++)
        {
            AdventurerManager.AvaliableAdvList.Add(AdventurerManager.createAdventurer());
        }

だから私の質問は...手動で宣言せず、コンストラクターを使用せずcreateAdventurerに、新しいインスタンスに値を割り当てることは可能ですか? Adventurerそれとも、どこかに非常に長いコンストラクターを配置する方が簡単でしょうか?

4

2 に答える 2