メソッドのオーバーロードにはいくつか制限があります。引数の型違いのオーバーロードはできますが、引数名だけが違うオーバーロードは作れません。引数の型まで一緒で、名前だけ違う。}また、戻り値だけ違うオーバーロードも作れません。引数が一致していて、戻り値だけ違う。しては区別しているように見えるけども、内部的には同じ扱いになっていて区別できないのでオーバーロードにも使えない」という型がいくつかあります。dynamicは内部的にはobject扱いin、ref、outは内部的には同じ扱い例えば以下のようなオーバーロードは作れません。0;シグネチャオーバーロードがある以上、関数は、複数ある関数のうちのどれを呼ぶか、名前だけ特定することができません。特定には、関数名と、引数の型が必要になります。署名、サイン)と呼びます。前述の通り、C#の場合は引数名や戻り値の型はオーバロード解決には使えないので、これらはシグネチャには含まれません。int)です(引数名と戻り値の型が消える)。C++やJavaはC#と同様です。Int全体がシグネチャです。みたいな引数なしな書き方ができます。この引数なしな書き方では、Mだけではなくてその周りまで見ないと「どのMか」が確定しません。「いくつかあるメソッドMのうちのいずれか」という状態です。group)と呼びます。記号を使って以下のような書き方をすることができるようになりました。function)と呼びます。以下のように書くこともできます。記号で書けるようになりました。7では、関数の中で別の関数を定義して使うことができます。その場所でしか使えない関数)と呼びます。以下のように書けます。}}詳細は「ローカル関数と匿名関数」で説明しています。function)というものがあります。以下のような書き方をします。}}強調表示している部分が匿名関数です。通常の関数もローカル関数も名前を持っていますが、匿名関数は、その名前通り、無名です。匿名関数は、ローカル関数と比べて制限も多いですが、その代わり、どこにでも書けるという利点があります。(正確には、式が書ける場所ならどこにでも書けます。ローカル関数はステートメントです。)詳細は「ローカル関数と匿名関数」で説明しています。型の配列に格納されている値の最大値、最小値および平均値を求める関数をそれぞれ作成せよ。配列中の値の最大値を求める。配列中の値の最小値を求める。配列中の値の平均値を求める。配列中の値の最大値を求める。配列中の値の最小値を求める。配列中の値の最大値を求める。