Когда __proto__ полезен?

Когда _ _ proto _ _ полезно?

Его поддерживает множество браузеров, но поскольку не все это делают, программисты, похоже, боятся его использовать. Я никогда не видел его ни в одном коде (например, в библиотеках jQuery и backbone.js).

Когда _ _ proto _ _ полезен? Является ли это просто странной вещью для полноты?

-121--1830838- Почему экземпляр Random в сериализованном классе многократно производит один и тот же набор чисел? Так что я c # noob. У меня есть быстрый вопрос, на который я не могу найти ответ нигде. [Serializable ()] Словарь открытого класса {private Random m_RandomGenerator = new Random (); общественная...

Так что я c # noob. У меня есть быстрый вопрос, на который я не могу найти ответ нигде.

 [Serializable()]
 public class Dictionary
 {
    private Random m_RandomGenerator = new Random();

    public int GetNext() 
    {
        return m_RandomGenerator.Next(100);
    }
 }

Экземпляр Dictionary загружается при каждом запуске программы, и этот код возвращает точно такую же последовательность чисел при каждом запуске. Под которым я имею в виду, каждый раз, когда исполняемый файл запускается. Конечно, значение времени, с которым оно заполнено, должно отличаться (DateTime.Now.Ticks я предполагаю?).

Пара моментов:

  • Существует только один экземпляр словаря, десериализованный из ранее экспортированного файла при запуске.
  • Если сделать m_RandomGenerator статичным, проблема будет исправлена.

Кто-нибудь знает почему? Я дважды проверил, что я не создаю новый экземпляр словаря каждый раз, так что это не проблема.


Что ж, меня смущает. Как выясняется, виновником был атрибут [Serializable ()]. Используемый мною класс словаря был загружен из ранее экспортированного файла, который, очевидно, загружал начальное число обратно в Random (). Изменение переменной на статическую означает, что начальное значение больше не загружается из ранее сериализованного экземпляра, скрывая проблему.

Спасибо всем людям, предлагающим конструктивные советы!

7
задан Shog9 28 September 2011 в 22:41
поделиться