В чем разница между двумя способами назначения методов для объекта делегата [дубликата]

1

Рассмотрим этот фрагмент:

public delegate void PrintSomeText(string);

И где-то законным мы имеем следующий метод:

public void ShowText(string s) { Console.WriteLine(s); }

Что такое() различия между двумя способами назначения метода ShowText для printObj ниже?

static void Main()
{
    PrintSomeText printObj;
    /* ... */
    printObj = new PrintSomeText(ShowText); // The first way
}

против:

static void Main()
{
    PrintSomeText printObj;
    /* ... */
    printObj = ShowText; // The second way
}
Теги:

2 ответа

1
Лучший ответ

Нет никакой разницы. Начиная с.NET 2.0/VS2005, компилятор С# добавил улучшение, которое автоматически выводило тип делегата на основе левой части задания и неявно добавляло new PrintSomeText вызов new PrintSomeText к скомпилированному коду. После компиляции они идентичны.

1

Фактически, они ничем не отличаются. Второй метод, введенный в С# 2.0, является более кратким.

Для получения дополнительной информации ознакомьтесь с этой статьей MSDN

Ещё вопросы

Сообщество Overcoder
Наверх
Меню