Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在构造函数中分配随机枚举值?_C#_Oop - Fatal编程技术网

C# 如何在构造函数中分配随机枚举值?

C# 如何在构造函数中分配随机枚举值?,c#,oop,C#,Oop,因为我有下面的代码 public class student { public enum Level { novice, adept, master } private Level _skillevel; public student() { _skillevel = //to assign a random value from novice, adept and mast

因为我有下面的代码

public class student
{
    public enum Level
    {
        novice,
        adept,
        master
    }
    private Level _skillevel;
    public student()
    {
      _skillevel = 
      //to assign a random value from novice, adept and master
     }

我所期望的是,每次创建一个学生对象时,它都会被分配一个随机的技能级别。我该怎么解释呢?感谢您的帮助。

获取枚举的随机值

 public student()
    {
        Array values = Enum.GetValues(typeof(Level));
        Random random = new Random();
        Level _skillevel = (Level)values.GetValue(random.Next(values.Length));
    }

如果您计划在循环中创建student对象,则建议将Random类的对象保持为静态

获取枚举的随机值

 public student()
    {
        Array values = Enum.GetValues(typeof(Level));
        Random random = new Random();
        Level _skillevel = (Level)values.GetValue(random.Next(values.Length));
    }

如果您计划在循环中创建student对象,则建议将Random类的对象保持为静态

非常类似于:抱歉重复,我稍后会删除它。非常类似于:抱歉重复,我稍后会删除它。@YunxiangLi如果这是正确的,请不要忘记接受这一正确答案:)我建议您将
随机
对象作为参数传入,不要在方法内部创建它。否则,如果您每隔几毫秒多次调用它,它就不会是随机的@MatthewWatson,正确的方法是在构造函数中传递随机变量,但是我也建议在一些静态变量中保持随机变量为静态变量class@YunxiangLi如果这是正确的,那么不要忘记接受这一正确答案:)我建议您将
Random
对象作为参数传入,而不要在方法内部创建它。否则,如果您每隔几毫秒多次调用它,它就不会是随机的@MatthewWatson,对,正确的方法是在构造函数中传递随机变量,但我建议在某个静态类中将随机变量保持为静态