2012-07-11 46 views
-1

這下面的代碼會得到我一個隨機數:保存生成的隨機數字供以後使用

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

我想將它保存爲一個字符串/ INT /長或一些如何,所以我將能夠使用相同的數字。因此,例如,如果我現在打電話給srandom,我會得到隨機數,但過了一段時間後它會改變。我希望它保持不變。

+0

你想要一個新的隨機數的每個程序啓動時間(和直到它退出爲止),還是隻想一次生成它,然後在程序下次啓動時加載保存的數字? – shambulator 2012-07-11 10:38:06

+0

每次程序啓動時,我都會想要一個新的隨機數(並使用同一個直到它退出) – MiLady 2012-07-11 10:39:27

+0

將srandom更改爲類的靜態字段,並從您的類的靜態構造函數中指定它。 – 2012-07-11 10:46:07

回答

0

你可以做到以下幾點:

Globals8.GlobalInt8 = Globals8.GlobalInt8.HasValue ? Globals8.GlobalInt8 : srandom; 

你聲明變量GlobalInt8作爲一個可空INT這樣的:

public static class Globals8 
{ 
    private static int? globalInt8 = default(int?); 
    public static int? GlobalInt8 
    { 
     get { return globalInt8;} 
     set { globalInt8 = value;} 
    } 
} 

同樣的事情可以適用於長變量。這裏發生的是,您將該值初始化爲與參考對象中的null類似的默認值。之後,你檢查變量是否有價值,然後你忽略它。否則你設定了它的價值。

希望這是有用的。

+0

嗯所以只需一秒這個代碼將保持唯一的第一個隨機數?它不會每次都打電話給srandom?我需要一次隨機生成的數字。 – MiLady 2012-07-11 10:46:49

+0

你的代碼不起作用。 'default(int)'將返回0.所以GlobalInt8.HasValue將爲true。你必須用'null'來初始化它,或者使用正確的類型('default(int?)') – 2012-07-11 10:53:58

+0

我不明白你真正想要實現的是如何給我調用一個序列或者更清楚地使用你的註釋我可以告訴你如何去做。 – 2012-07-11 11:17:16

3

您可以在類中創建一個靜態字段,並從靜態構造函數設置它在程序生命週期中一旦初始化:

public class YourClass{ 

    private static readonly int g_RandomInt; 

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

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

謝謝,我應該如何設置並獲取它? – MiLady 2012-07-11 10:56:26

+0

我可以回答,但我更喜歡建議你在網上採用一個好的C#教程。這是C#語言的基礎知識,網絡上有很多教程。說實話,我不能直接回答你,因爲它取決於整個程序(哪個類負責存儲它,哪個類會消耗它,等等) – 2012-07-11 11:00:16