2016-03-10 2 views
2

я наткнулся на метод для генерации различных значений с помощью метода Random.Next() в C#Как сохранить значения, полученные от метода Random.Next C#

Вот код:

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 имел то же значение, что и новый случайный сгенерированный;

Должен ли я сохранить все значения в List или Array? И если да, то как это сделать? Заранее спасибо!

ответ

3

Я хочу использовать одно и то же случайное сгенерированное значение с первого запуска программы.

Перегрузка Random(), который вы используете, внутренне генерирует семя для алгоритма генерации псевдослучайных чисел.

Чтобы получить тот же результат, каждый запуск, поставлять зерно по вашему выбору с alternate constructor

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

Пока ваша программа в противном случае выполняется в неопределенном порядке, вы получите тот же «случайный» номер (он не будет детерминированным, если, например, он использует несколько потоков или поток изменений на основе ввода пользователем).

Смежные вопросы