76

私は c# の初心者であり、c# を学ぶことに強い関心を持っていますが、混乱しています。関数とメソッドの違いは何かと誰かに尋ねたところ、違いはなく、どちらも同じ機能を持っているとのことでした。
今、私はかなり混乱しており、優れた開発者からメソッドと関数とは何かを知りたいですか?

両方とも同じですか?そうでない場合、それぞれを初期化するにはどうすればよいですか??

関数を初期化するこの方法は正しいですか?

public void UpdateLeaveStatus(EmployeeLeave objUpdateLeaveStatus)

私は新しいので、適切な助けを提供してください。

4

8 に答える 8

69

関数がクラスの一部である場合、それはメソッドと呼ばれます。

C# は OOP 言語であり、クラスの外部で宣言される関数はありません。そのため、C# のすべての関数は実際にはメソッドです。

ただし、この形式的な違いを除けば、それらは同じです...

于 2012-09-04T07:57:10.977 に答える
56

どちらも同じです。違いはありません。C# で同じことを表す用語が異なるだけです。

方法:

オブジェクト指向プログラミングでは、メソッドはクラスに関連付けられたサブルーチン (またはプロシージャまたは関数) です。

オブジェクト指向プログラミングに関しては、関数ではなく「メソッド」という用語が使用されます。

于 2012-09-04T07:50:22.033 に答える
4

C# には関数はありません。メソッドがあります (典型的な方法public void UpdateLeaveStatus(EmployeeLeave objUpdateLeaveStatus):) msdn およびファンクターへのリンク - タイプの変数Func<>

于 2012-09-04T07:51:53.973 に答える
3

どちらも同じです。どちらも、コードを別の場所から呼び出すことができる作業単位にカプセル化することを意味する用語です。

歴史的に、値を返さない「メソッド」と値を返す「関数」には微妙な違いがあったかもしれません。C# では次のように変換されます。

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

しかし、実際には、2 つの概念に違いはないことを繰り返します。

于 2012-09-04T07:53:15.333 に答える
3

まあ、一部のプログラミング言語では関数と呼ばれ、メソッドと呼ばれるものもありますが、実際には同じものです。これは、数学関数を参照する抽象化された形式を表しているだけです。

f -> f(N:N).

自然数の値を持つ関数を意味します(単なる例です)。したがって、名前に加えて、目的を解決するための指示を含むコードのブロックを表す、まったく同じものです。

于 2012-09-04T07:52:28.427 に答える
3

オブジェクト指向プログラミングの概念から:

クラスのフィールドにアクセス/変更する関数がある場合、それはメソッドになります。それ以外は関数です。

Java/C++ クラスのすべての関数をメソッドとして呼び出し続けても問題ありません。その理由は、クラス プロパティに直接/間接的にアクセス/変更しているためです。では、Java/C++ クラスのすべての関数がメソッドではないのはなぜでしょうか?

于 2012-11-04T19:52:13.910 に答える
2

構造化プログラミング言語のバックグラウンドを持つプログラマーは、それを関数として知っていますが、OOPS ではメソッドと呼ばれます。

しかし、両者に違いはありません。

昔は、メソッドは値を返さず、関数は返していました。現在、両者は同じ意味で使用されています。

于 2012-09-04T08:20:30.637 に答える