Различие между проводным соединением событий с и без “нового”

Мой ключ был защищен паролем, который вызывал проблему, теперь приведен рабочий файл (для помощи будущим гуглерам)

FROM ubuntu

MAINTAINER Luke Crooks "luke@pumalo.org"

# Update aptitude with new repo
RUN apt-get update

# Install software 
RUN apt-get install -y git
# Make ssh dir
RUN mkdir /root/.ssh/

# Copy over private key, and set permissions
ADD id_rsa /root/.ssh/id_rsa

# Create known_hosts
RUN touch /root/.ssh/known_hosts
# Add bitbuckets key
RUN ssh-keyscan bitbucket.org >> /root/.ssh/known_hosts

# Clone the conf files into the docker container
RUN git clone git@bitbucket.org:User/repo.git
14
задан nawfal 6 July 2014 в 20:50
поделиться

6 ответов

Я сделал это

static void Hook1()
{
    someEvent += new EventHandler( Program_someEvent );
}

static void Hook2()
{
    someEvent += Program_someEvent;
}

И затем выполнил ildasm по коду.
сгенерированный MSIL был точно тем же.

Так для ответа на вопрос да они - то же самое.
компилятор просто выводит, что Вы хотите someEvent += new EventHandler( Program_someEvent );
- Вы видите, что он создает новое EventHandler объект в обоих случаях в MSIL

26
ответ дан 1 December 2019 в 08:20
поделиться

Это раньше было (.NET 1.x дни), что подробная форма была единственным способом сделать это. В обоих случаях Вы - newing делегат для указания на метод Program_someEvent.

4
ответ дан 1 December 2019 в 08:20
поделиться

Я думаю, что один способ действительно сказать состоял бы в том, чтобы посмотреть на MSIL, произведенный для кода.. Имеет тенденцию быть хорошим испытанием на кислотность..

у меня есть забавные опасения, что это может так или иначе смешать с GC.. Кажется нечетным, что были бы все издержки объявления нового типа делегата, если бы это никогда не должно было делаться этот путь, Вы знаете?

-1
ответ дан 1 December 2019 в 08:20
поделиться

Немного offtopic:

Вы могли инстанцировать делегата (new EventHandler(MethodName)) и (если соответствующий) повторное использование тот экземпляр.

2
ответ дан 1 December 2019 в 08:20
поделиться

Не был эти new XYZEventHandler, требуют до C#2003, и Вам разрешили опустить избыточный код в C#2005?

0
ответ дан 1 December 2019 в 08:20
поделиться

Я не думаю, что существует любое различие. Конечно, resharper говорит, что первая строка имеет избыточный код.

2
ответ дан 1 December 2019 в 08:20
поделиться
Другие вопросы по тегам:

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