Как получить текущее начальное значение Random в C #?

В моей игре я собираюсь использовать случайные значения, чтобы выбрать награду, которую игрок получает из сундука. Проблема в том, что вы можете быстро сохранить и быстро загрузить, а это означает, что они могут продолжать перезагружать, чтобы повторно рандомизировать, пока они не получат то, что хотят. {частный статический int myInt = 0; public static int Foo () {return myInt; } public static int Foo (int n) {myInt = n; ...

Я просто провел небольшой эксперимент:

public abstract class MyClass
{
  private static int myInt = 0;

  public static int Foo()
  {
    return myInt;
  }

  public static int Foo(int n)
  {
    myInt = n;
    return bar();
  }

  private static int bar()
  {
    return myInt;
  }
}

, а затем я запустил:

MessageBox.Show(MyClass.Foo().ToString());
MessageBox.Show(MyClass.Foo(3).ToString());
MessageBox.Show(MyClass.Foo().ToString());
MessageBox.Show(MyClass.Foo(10).ToString());
MessageBox.Show(MyClass.Foo().ToString());

Результаты, которые я ожидал, были 0, 3, 0, 10, 0.

К моему удивлению, я получил 0, 3, 3, 10, 10.

Как долго сохраняются эти изменения? Продолжительность выполнения программы? Продолжительность функции, вызывающей статический метод?

34
задан Ozzah 13 May 2011 в 00:31
поделиться