Вы уже получили ответы здесь. Просто повторяя правильное решение :
namespace mySpace
{
public static class Util
{
private static Random rnd = new Random();
public static int GetRandom()
{
return rnd.Next();
}
}
}
Так что вы можете позвонить:
var i = Util.GetRandom();
на всем протяжении. Если вам строго необходим настоящий статический метод без сохранения состояния для генерации случайных чисел, вы можете положиться на Guid
.
public static class Util
{
public static int GetRandom()
{
return Guid.NewGuid().GetHashCode();
}
}
Это будет немного медленнее, но может быть гораздо более случайным, чем Random.Next
, по крайней мере из моего опыта.
Но не :
new Random(Guid.NewGuid().GetHashCode()).Next();
Создание ненужного объекта замедлит работу, особенно в цикле.
и никогда :
new Random().Next();
Не только медленнее (внутри цикла), но и случайность ... ну, на мой взгляд, не очень хорошо ..