質問: C言語とC#で自作関数の使い方は一緒ですか?
回答: 構造化言語であるC言語は、関数を単位としてプログラムを構築しますが、 オブジェクト指向化言語であるC#では、クラスというものを単位としてプログラムを構築します。 C#には、関数は無く、それに近い存在として、メソッドと呼ばれる物が、 クラス内の要素として存在します。 C言語で、基本的に全ての処理は関数内にあり、関数から独立した処理というのは存在しないのと同じ様に、 C#では、基本的に全ての処理はクラス内にあり、クラスから独立した単体の関数というものはありません。 なお、C言語の関数、C#のクラス共に、自作〜という概念はありません。 自分で書いたものも他人が書いたものも、平等に共通して同じ関数やクラスです。 その違いは、 メソッドは、クラス内の要素の一つなのでクラスの内部にしか存在できません。 また、アクセス制御機能を持ち、アクセス指定子で指定された範囲でしか、使うことができません。 オブジェクト指向のクラスの継承により、サブクラスでの機能を書き換えるオーバーライドという機能があります。 さらに、オブジェクト指向とは関係ありませんが、同名のメソッドを多重に定義できる、オーバーロードという機能があります。 その他、引数に参照渡しが使えたり(ポインタを使わなくて良い)、出力専用の引数を指定できたりと、 C言語に比べて安全性を高める工夫がなされています。