Мой ключ был защищен паролем, который вызывал проблему, теперь приведен рабочий файл (для помощи будущим гуглерам)
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
Я сделал это
static void Hook1()
{
someEvent += new EventHandler( Program_someEvent );
}
static void Hook2()
{
someEvent += Program_someEvent;
}
И затем выполнил ildasm по коду.
сгенерированный MSIL был точно тем же.
Так для ответа на вопрос да они - то же самое.
компилятор просто выводит, что Вы хотите someEvent += new EventHandler( Program_someEvent );
- Вы видите, что он создает новое EventHandler
объект в обоих случаях в MSIL
Это раньше было (.NET 1.x дни), что подробная форма была единственным способом сделать это. В обоих случаях Вы - newing делегат для указания на метод Program_someEvent.
Я думаю, что один способ действительно сказать состоял бы в том, чтобы посмотреть на MSIL, произведенный для кода.. Имеет тенденцию быть хорошим испытанием на кислотность..
у меня есть забавные опасения, что это может так или иначе смешать с GC.. Кажется нечетным, что были бы все издержки объявления нового типа делегата, если бы это никогда не должно было делаться этот путь, Вы знаете?
Немного offtopic:
Вы могли инстанцировать делегата (new EventHandler(MethodName))
и (если соответствующий) повторное использование тот экземпляр.
Не был эти new XYZEventHandler
, требуют до C#2003, и Вам разрешили опустить избыточный код в C#2005?
Я не думаю, что существует любое различие. Конечно, resharper говорит, что первая строка имеет избыточный код.