Действительно ли безопасно добавить делегатов в событиях с новым ключевым словом?

С учетом функции числа ниже, она возвращает форматированный номер в индийском формате группировки цифр.

ex: input: 12345678567545.122343

output: 1,23,45 , 67,85,67,545.122343

blockquote>
function formatNumber(num) {
        var n1, n2;
        num = num + '' || '';
        // works for integer and floating as well
        n1 = num.split('.');
        n2 = n1[1] || null;
        n1 = n1[0].replace(/(\d)(?=(\d\d)+\d$)/g, "$1,");
        num = n2 ? n1 + '.' + n2 : n1;
        return num;
}

https://jsfiddle.net/scLtnug8/1/ ​​

6
задан Forgotten Semicolon 30 September 2008 в 15:41
поделиться

4 ответа

Вы не должны волноваться о хранении ссылки на первоначально зарегистрированного делегата, и Вы не запустите "противный пул памяти".

Когда Вы называете "OnStuff - = новый StuffEventHandler (это. Дескриптор)"; код удаления не сравнивает делегата, которого Вы удаляете ссылкой: это проверяет на равенство путем сравнения ссылок на целевой метод (методы), который делегат назовет и удаляет делегатов соответствия из "OnStuff".

Между прочим, сам "OnStuff" является объектом делегата (ключевое слово события, что я предполагаю, что Вы имеете в своем объявлении, просто ограничивает доступность делегата).

6
ответ дан 8 December 2019 в 12:24
поделиться

Если я помню правильно, первая альтернатива является просто синтаксическим сахаром для второго.

1
ответ дан 8 December 2019 в 12:24
поделиться

У меня создалось впечатление, что 2 просто сахар синтаксиса. Они должны быть точно тем же самым.

2
ответ дан 8 December 2019 в 12:24
поделиться

Номер один является просто стенографией, которая генерирует тот же MSIL как 2-й в типе компиляции, это посмотрит на это. Обработайте и выведите делегата для инстанцирования. Но Вы никогда не должны отказываться от подписки при помощи нового.

Таким образом, нет никакого различия между этими 2, просто немного синтаксического сахара для создания нашего инструмента для очистки кода.

10
ответ дан 8 December 2019 в 12:24
поделиться
Другие вопросы по тегам:

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