冰冰冰冰冰糖Er 2022-05-03 10:57 采纳率: 90.9%
浏览 53
已结题

为什么把随机数种子放在循环体内部,只会产生一种结果?

class Program
{
static void Main(string[] args)
{
//创建10个对象 通过一个循环 去调用他们各自打招呼的方法
//Student s = new Student();
//Person p = new Person();
//ShuaiGuo sg = new ShuaiGuo();

        Person[] pers = new Person[10];
        
        //Console.WriteLine(r.Next(1, 999));//产生从1到999的随机数
        for (int i = 0; i < pers.Length; i++)
        {
            Random r = new Random();
            int rNumber = r.Next(1, 7);
            switch (rNumber)//rNumber的范围是1-6
            {
                case 1: pers[i] = new Student();
                    break;
                case 2: pers[i] = new Teacher();
                    break;
                case 3: pers[i] = new ShuaiGuo();
                    break;
                case 4: pers[i] = new MeiLv();
                    break;
                case 5: pers[i] = new YeShou();
                    break;
                case 6: pers[i] = new Person();
                    break;
            }
        }


        for (int i = 0; i < pers.Length; i++)
        {
           // pers[i].PersonSayHi();因为这是父类数组,只能调用父类方法。
            if (pers[i] is Student)
            {
                ((Student)pers[i]).StudentSayHi();
              //  pers[i].PersonSayHi();
            }
            else if (pers[i] is Teacher)
            {
                ((Teacher)pers[i]).TeacherSayHi();
            }
            else if (pers[i] is ShuaiGuo)
            {
                ((ShuaiGuo)pers[i]).ShuaiGuoSayHi();
            }
            else if (pers[i] is YeShou)
            {
                ((YeShou)pers[i]).YeShouSayHi();
            }
            else if (pers[i] is MeiLv)
            {
                ((MeiLv)pers[i]).MeiLvSayHi();
            }
            else 
            {
                pers[i].PersonSayHi();
            }

        }
        Console.ReadKey();

    }
}

public class Person
{
    public void PersonSayHi()
    {
        Console.WriteLine("我是人类");
    }
}


public class Student : Person
{
    public void StudentSayHi()
    {
        Console.WriteLine("我是学生");
    }
}

public class Teacher : Person
{
    public void TeacherSayHi()
    {
        Console.WriteLine("我是老师");
    }
}


public class MeiLv : Person
{
    public void MeiLvSayHi()
    {
        Console.WriteLine("我是镁铝");
    }
}


public class ShuaiGuo : Person
{
    public void ShuaiGuoSayHi()
    {
        Console.WriteLine("我是帅锅");
    }
}


public class YeShou : Person
{
    public void YeShouSayHi()
    {
        Console.WriteLine("我是野兽");
    }
}

}

img

展开全部

  • 写回答

4条回答 默认 最新

  • xuzuning 2022-05-04 01:52
    关注

    相同的种子,会缠身相同的为随机数序列,默认是当前时间

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 5月11日
  • 已采纳回答 5月4日
  • 创建了问题 5月3日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部