Разница между методом и функцией? [дубликат]


этот вопрос уже есть ответ здесь:

Я новичок в c# и есть большой интерес, чтобы узнать c#, но я в замешательстве. Когда я спросил у одного, в чем разница между функцией и методом, он сказал мне, что нет никакой разницы, что они оба имеют одинаковую функциональность.
Теперь я совсем запутался и хочу знать от хороших разработчиков, что такое методы и функции?

они оба одинаковые? Если нет, то как мне инициализировать каждый из них??

это способ инициализации функции правильно?

public void UpdateLeaveStatus(EmployeeLeave objUpdateLeaveStatus)

пожалуйста, предоставьте надлежащую помощь, поскольку я новичок.

8 53
c#

8 ответов:

оба одинаковы, нет никакой разницы, это просто другой термин для одного и того же в C#.

метод:

в объектно-ориентированном программировании, a метод - это подпрограмма (процедура или или функции), связанные с классом.

применительно к объектно-ориентированному программированию используется термин "метод", а не функции.

когда функция является частью класса, она называется методом.

C# является языком ООП и не имеет функций, которые объявлены вне классов, поэтому все функции в C# на самом деле являются методами.

хотя, помимо этого формального различия, они одинаковы...

в C# они взаимозаменяемы (хотя метод-это правильный термин), потому что вы не можете написать метод, не включив его в класс. Если бы он был независим от класса, то это была бы функция. Методы-это функции, которые работают через назначенный класс.

в c#нет никаких функций. Есть методы (типичный метод:public void UpdateLeaveStatus(EmployeeLeave objUpdateLeaveStatus))ссылка на msdn а функторы - переменная типа Func<>

ну, в некоторых языках программирования они называются функциями, другие называют это методами, дело в том, что это одно и то же. Он просто представляет собой абстрактную форму обращения к математической функции:

f -> f(N:N).

означает его функцию со значениями из натуральных чисел (просто пример). Так что помимо названия это точно то же самое, представляющее собой блок кода, содержащий инструкции по решению вашей цели.

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

исторически, возможно, было тонкое различие с "методом", являющимся чем-то, что не возвращает значение, и "функцией", которая это делает. в C# это будет переводиться как:

public void DoSomething() {} // method
public int DoSomethingAndReturnMeANumber(){} // function

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

Из Концепции Объектно-Ориентированного Программирования:

Если у вас есть функция, которая обращается/мутация полей вашего класса, он становится метод. В противном случае, это функция.

Это не будет преступлением, если вы продолжаете вызывать все функции в классах Java/C++ в качестве методов. Причина в том, что вы прямо/косвенно получаете доступ/изменяете свойства класса. Так почему же не все функции в классах Java/C++ являются методами?

программисты из фона языка структурного программирования знают его как функцию, а в OOPS это называется методом.

но между ними нет никакой разницы.

в старые времена методы не возвращали значения, а функции делали. Теперь они оба используются взаимозаменяемо.