如何保存从 Random.Next 方法 C# 生成的值

How to save values generated from Random.Next method C#

我在 C#

中遇到了使用 Random.Next() 方法生成不同值的方法

代码如下:

 private static readonly Random random = new Random();
 private static readonly object syncLock = new object();
 public static int RandomNumber(int min, int max)
 {
     lock(syncLock) { // synchronize
         return random.Next(min, max);
     }
 }

我的问题是每次使用它们创建新实例并分别将它们用于每个对象时如何保存这些值中的每一个

例如

 //Creating new instance in the Main class
 public class ChainStore
 {
     public static void Main()
     {
         var purchaseDetails = new PurchaseDetails();
     }
 }

 //how i call it in the constructor (using the RandomNumber method from above)

 public class PurchaseDetails
 {
     public PurchaseDetails()
     {
         this.CardID = RandomNumber(1000, 9999);
     }
 }

所以现在,例如,如果我想创建

var purchaseDetails2 = new PurchaseDetails();

并重新运行 程序(使用 F5/ctrl+F5)我想使用第一次 运行 程序时相同的随机生成值。换句话说,我希望 Card.ID 具有相同的值而不是新的随机生成的值;

我是否必须将所有值保存在 ListArray 中? 如果是,我该怎么做?提前致谢!

I want use the same random generated value from the first time i run the program.

您在内部使用的 Random() 重载生成伪随机数生成算法的种子。

要每隔 运行 获得相同的结果,请提供您选择的种子 alternate constructor

private static readonly Random random = new Random(42);

只要您的程序 运行 以确定的顺序运行,您将获得相同的 "random" 数字(例如,如果它使用多个线程或更改流程,则它不会是确定的基于用户输入)。