Почему переменная равна нулю в javascript [duplicate]

По-видимому, потому, что я открывал его из файла каждый раз, когда ключевой контейнер перегенерировался (или что-то еще). Вот код, который работает:

X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
X509Certificate2 c = store.Certificates
    .Find(X509FindType.FindBySubjectName, SIGNED_SUBJECT, true) 
    .Cast<X509Certificate2>()
    .FirstOrDefault();
    store.Close();

RSACryptoServiceProvider rsa = c.PrivateKey as RSACryptoServiceProvider;
Console.WriteLine("Certificate thumbprint:" + c.Thumbprint);
Console.WriteLine("From machine key store?: " + rsa.CspKeyContainerInfo.MachineKeyStore);
Console.WriteLine("Key container name: " + rsa.CspKeyContainerInfo.KeyContainerName);
Console.WriteLine("Key unique container name: " + rsa.CspKeyContainerInfo.UniqueKeyContainerName);  

Раньше при запуске фрагмента кода из моего исходного сообщения (где я открываю сертификат как файл) информация о ключах, которая печатается на консоли, будет меняться каждый раз. Запуск измененного кода показывает одну и ту же информацию каждый раз.

1
задан KOUSIK MANDAL 17 June 2018 в 14:03
поделиться

1 ответ

Наведите маленькую синюю иконку i на консоль хром, и вы увидите подсказку, объясняющую это поведение. Переменная оценивается, когда вы нажимаете треугольник. Значение объекта в индексе «значение» изменяется между вами при первом запуске console.log и при отведении вниз и проверке значений.

См.: Отладка Chrome js - два разных значения в то же время

Редактирование: в частности, объекты и массивы оцениваются при нажатии на них в консоли. Строки (и другие примитивы) оцениваются, когда они console.log.

3
ответ дан Erty Seidohl 15 August 2018 в 23:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: