I bumped into a method for generating different values with the Random.Next() method in C#
Here's the code:
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);
}
}
My question is how can I save each of these values every time create new instance with them and use them for each object separately
e.g
//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);
}
}
So now, for example if i want to create
var purchaseDetails2 = new PurchaseDetails();
and rerun the program(with F5/ctrl+F5) I want use the same random generated value from the first time i run the program. In other words I want the Card.ID to have the same value not a new random generated one;
Do I have to save all the values in a List or Array?
And if yes how do I do that? Thanks in advance!
I want use the same random generated value from the first time i run the program.
The overload of Random() you are using internally generates a seed for the pseudo-random number generation algorithm.
To get the same result every run, supply a seed of your choosing with the alternate constructor
private static readonly Random random = new Random(42);
As long as your program otherwise runs in a deterministic order, you will get the same "random" numbers (it won't be deterministic if for example it uses multiple threads or changes flow based on user input).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With