首页 新闻 会员 周边 捐助

.net standard上随机数Random不再依赖于时间作为默认seed了吗?

0
[已解决问题] 解决于 2019-12-03 21:56

闲来无事发现一个很有意思的问题。

        var r1 = new Random();
        var r2 = new Random();
        Console.WriteLine(r1.Next());
        Console.WriteLine(r2.Next());

.netcore 2.2控制台输出
316573150
1666471442
.net framework 4.7.2控制台输出
1606084946
1606084946

.net framework 的输出符合我的预期,即使用时间作为默认种子,相同时间创建的Random输出行为相同,所以在项目中某些场合会刻意使用Guid.NewGuid()作为种子。但是偶然间试了试.netcore 2.2的发现竟然不一样,查了查相关资料也没有解释。

GetPower的主页 GetPower | 菜鸟二级 | 园豆:202
提问于:2019-12-01 22:31
< >
分享
最佳答案
0

答案 Random 的实现源码中,详见 Random.cs

奖励园豆:5
dudu | 高人七级 |园豆:30925 | 2019-12-02 10:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册