C# 保存生成的随机数以供以后使用

C# 保存生成的随机数以供以后使用,c#,random,C#,Random,以下代码将为我获取一个随机数: Random r = new Random(); int srandom = r.Next(2147483647); 我想将其保存为字符串/int/long或其他格式,以便能够使用相同的数字。例如,如果我现在调用srandom,我会得到随机数,但过一段时间它会改变。我希望它保持不变。您可以执行以下操作: Globals8.GlobalInt8 = Globals8.GlobalInt8.HasValue ? Globals8.GlobalInt8 : srand

以下代码将为我获取一个随机数:

Random r = new Random();
int srandom = r.Next(2147483647);

我想将其保存为字符串/int/long或其他格式,以便能够使用相同的数字。例如,如果我现在调用srandom,我会得到随机数,但过一段时间它会改变。我希望它保持不变。

您可以执行以下操作:

Globals8.GlobalInt8 = Globals8.GlobalInt8.HasValue ? Globals8.GlobalInt8 : srandom;
将变量GlobalInt8声明为可为null的int,如下所示:

public static class Globals8
{
    private static int? globalInt8 = default(int?);
    public static int? GlobalInt8 
    {
         get { return globalInt8;}
         set { globalInt8 = value;}
    }
}
同样的事情也可以应用于长变量。这里发生的情况是,您将值初始化为默认值,这类似于引用对象中的null。然后检查变量是否有值,然后忽略它。否则您将设置其值


希望这是有用的。

您可以在类中创建一个静态字段,并在程序生命周期中通过从静态构造函数设置它来初始化它一次:

public class YourClass{

    private static readonly int g_RandomInt;

    static YourClass(){
        g_RandomInt = new Random().Next();    
    }

    public void InstanceMethod()
    {
        Console.WriteLine(g_RandomInt);
    }
}

您希望每次程序启动时都有一个新的随机数(并使用相同的随机数直到退出),还是希望只生成一次,并在下次程序启动时加载保存的随机数?我希望每次程序启动时都有一个新的随机数(并使用相同的随机数直到退出)将srandom更改为类的静态字段,并从类的静态构造函数中分配它。@SteveB我已将静态代码保存为int srandom到全局static,但它不起作用。嗯,所以只要一秒钟,这段代码就会保存唯一的第一个随机数?它不会每次都调用srandom?我需要一次随机生成的数字。你的代码不工作<代码>默认值(int)将返回0。因此GlobalInt8.HasValue将为true。您必须使用
null
来初始化它,或者使用正确的类型(
default(int?
)我不明白您真正想要实现的是什么请告诉我调用的顺序,或者更清楚地说明您的注释,以便我可以告诉您如何执行。谢谢,我应该如何设置并获取它?我可以回答,但我更愿意建议你在网上学习一门好的C#教程。这是C#语言的基础知识,网络上有很多教程。老实说,我不能直接回答你,因为这取决于整个程序(哪个类负责存储它,哪个类将使用它,等等)