次のコードは私に乱数を取得します:
Random r = new Random();
int srandom = r.Next(2147483647);
同じ番号を使用できるように、string / int/longなどに保存したいと思います。たとえば、今srandomを呼び出すと、乱数が取得されますが、しばらくすると変更されます。変わらないようにしたいと思います。
クラスに静的フィールドを作成し、静的コンストラクターから設定することで、プログラムライフサイクルで一度初期化できます。
public class YourClass{
private static readonly int g_RandomInt;
static YourClass(){
g_RandomInt = new Random().Next();
}
public void InstanceMethod()
{
Console.WriteLine(g_RandomInt);
}
}
次のことができます。
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;}
}
}
同じことがlong変数にも当てはまります。ここで、参照オブジェクトのnullに似たデフォルト値に値を初期化するとどうなりますか。その後、変数に値があるかどうかを確認し、それを無視します。それ以外の場合は、その値を設定します。
これがお役に立てば幸いです。