使用类组合

时间:2016-05-22 05:32:54

标签: c# random

以下是我有一个拼写类

的情况
    public abstract class Spell
{

    public abstract void Castspell ();
}

public class Heal:Spell
{
    Dictionary<string, int> heals = new Dictionary<string,int> ();

    public Heal()
    {
        heals.Add ("less heal", 1);
        heals.Add ("medium heal", 2);
        heals.Add (" large heal", 3);
    }

    public override void Castspell()
    {
    }


}

忽略Castspell(),还有另一个名为student

的类
    public class student
{
  public enum spells
    {
        lessheal,
        mediumheal,
        highheal
    }
    List<Spell> _skillist = new List<Spell>();
    public student()
    {
           //...
    }
            public void learnskills()
    {
        _skillist.Clear ();
        Spell newspell = new Spell ();
        _skillist.Add (newspell);

    }

我想在这里做的是我想要学习技能方法,每次我调用它会随机添加一个治疗法术到_skillist。(它可能是更少,中等或高)。我怎么能实现它?请给我一些关于it.thanks

的建议

1 个答案:

答案 0 :(得分:1)

这个问题非常广泛......但我建议使用以下各项的组合:

  • 在&#34; Heal&#34;上写一个方法从法术枚举值
  • 创建实例
  • 使用System.Random类生成随机数
  • 使用this answer使用随机数
  • 从法术枚举中获取随机项目

但是,为了做到这一点,您需要稍微更改一下代码。由于您并未询问代码示例中的特定问题,因此我无法为您重写所有内容,因此我会将该部分留给您!

编辑:

  • 使用字符串Dictionary或enum来引用你的法术,但选择一个并保持一致。您同时使用两者 - 一个字典中的字符串字典(例如&#34;中等愈合&#34;),但在另一个类中使用枚举(spells.mediumheal)。如果您需要的是一个包含相关数字的法术列表,我建议使用枚举。
  • 无论您使用什么,都需要从两个类中访问它。如果你想使用枚举declare it in the namespace,而不是在课堂上;如果你真的喜欢一个词典,也许把它放在一个单独的公共静态类中,如this例子。
  • 如果想要使用枚举,this answer可能会给你一些想法
  • 一般情况下,代码可以从一些清理中获益,但这不在您的问题范围之内