C#: анонимный метод vs именованный метод
Я новичок в SO и программировании и обучении изо дня в день с битами и кусками технических жаргонов (c#).
после Googling для некоторое время, ниже то, что я исследовал о methods
метод представляет собой блок операторов, который служит для повторного использования кода & он также поддерживает перегрузку с другой подписью....для бывших: drawShape(2pts), drawShape (3pts) и т.д...
An
Anonymous
метод является одним с блоком операторов, но нет имя....(как его преждевременно спрашивать, в ситуации wt мы сталкиваемся анонимный метод...любые статьи, образцы ...)Named method
: вот ссылка но в конце я не понял, что такое именованный метод...
может ли кто-нибудь объяснить, что такое "именованный" метод, и где мы используем анонимный метод?
5 ответов
именованный метод-это метод, который вы можете вызвать по его имени (например, это функция с именем). Например, вы определили функцию для добавления двух чисел:
int f(int x, int y)
{
return x+y;
}
вы бы назвали этот метод его именем так:f(1, 2);
.
анонимный метод-это метод, который передается в качестве аргумента функции без необходимости его имя. Эти методы могут быть построены во время выполнения или оценки от лямбда-выражение при компиляции время.
эти методы часто используются в LINQ запросы, например:
int maxSmallerThan10 = array.Where(x => x < 10).Max();
выражение x => x < 10
называется лямбда-выражением, и его результатом является анонимная функция, которая будет выполняться методом Where
.
если вы новичок, я бы предложил вам сначала прочитать о более основных вещах. Проверьте следующее ссылки:
давайте начнем с простого метода.
void MyMethod()
{
Console.WriteLine("Inside MyMethod"); //Write to output
}
вышеуказанный метод является named-method
который просто пишет Inside MyMethod
в окне вывода.
Anonymous methods
некоторые методы, используемые в некоторых особых ситуациях (при использовании delegates
), где определение метода обычно меньше, где вы не указываете имя метода.
например, (delegate) => { Console.WriteLine("Inside Mymethod");}
просто начните писать некоторые простые программы и в свое время, когда вы используете delegates
или некоторые продвинутые концепции вы узнаете сами. :)
объяснение по аналогии
обычно, когда мы рассказываем истории, мы обращаемся к людям по имени:
"Фредди"
"кто такой Фредди?"
анонимные методы или анонимные функции, которые кажутся одинаковыми, в основном являются делегатами. В качестве ссылки вы указываете:http://msdn.microsoft.com/en-us/library/bb882516.aspx описывает, анонимные методы предоставляют упрощенный способ передачи метода для выполнения другим методом. Как обратный звонок. Другой способ увидеть это-подумать о лямбда-выражениях.
a, названный контрастом, является любым общим методом.
из MSDN:
делегат может быть связан с именем метода. При создании экземпляра делегата с помощью именованного метода метод передается в качестве параметра. Это называется использованием именованного метода. Делегаты построен с помощью именованного метода, могут инкапсулировать статический метод или метод экземпляра. Названные методы являются только способом создания экземпляра делегата в более ранних версиях C#. Однако, в ситуации, когда создание нового метода является нежелательным, c# позволяет создать экземпляр делегата и сразу указать блок кода, который будет обрабатываться делегатом при его вызове. Блок может содержать либо лямбда-выражение, либо анонимный метод.
и
в версиях C# до 2.0 единственным способом объявления делегата было использование именованных методов. В C# 2.0 появились анонимные методы в C# 3.0 и более поздних лямбда-выражения заменяют анонимные методы как предпочтительный способ написания встроенного кода. Однако сведения об анонимных методах в этом разделе также применимы к лямбда-выражениям. Существует один случай, когда анонимный метод предоставляет функциональность, не найденную в лямбда-выражениях. Анонимные методы позволяют опустить список параметров. Это означает, что анонимный метод может быть преобразован в делегаты с различными сигнатурами. Это невозможно с лямбда-выражениями. Дополнительные сведения о лямбда-выражениях см. В разделе лямбда-выражения (C# программа передач.) Создание анонимных методов-это, по сути, способ передачи блока кода в качестве параметра делегата. С помощью анонимных методов можно уменьшить затраты на кодирование при создании экземпляров делегатов, так как не требуется создавать отдельный метод.
поэтому в ответ на ваш вопрос о том, когда использовать анонимные методы, MSDN говорит: в ситуации, когда создание нового метода является нежелательными накладными расходами.
по моему опыту, это скорее вопрос кода повторное использование и читаемость.
ссылки:
http://msdn.microsoft.com/en-us/library/98dc08ac.aspx
http://msdn.microsoft.com/en-us/library/0yw3tz5k.aspx
надеюсь, что это поможет