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#语言的基础知识,网络上有很多教程。老实说,我不能直接回答你,因为这取决于整个程序(哪个类负责存储它,哪个类将使用它,等等)