-1

次のコードは私に乱数を取得します:

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

同じ番号を使用できるように、string / int/longなどに保存したいと思います。たとえば、今srandomを呼び出すと、乱数が取得されますが、しばらくすると変更されます。変わらないようにしたいと思います。

4

2 に答える 2

3

クラスに静的フィールドを作成し、静的コンストラクターから設定することで、プログラムライフサイクルで一度初期化できます。

public class YourClass{

    private static readonly int g_RandomInt;

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

    public void InstanceMethod()
    {
        Console.WriteLine(g_RandomInt);
    }
}
于 2012-07-11T10:52:33.830 に答える
0

次のことができます。

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に似たデフォルト値に値を初期化するとどうなりますか。その後、変数に値があるかどうかを確認し、それを無視します。それ以外の場合は、その値を設定します。

これがお役に立てば幸いです。

于 2012-07-11T10:36:10.867 に答える