C# メソッド(関数)

メソッド(関数)

メソット(関数)とは処理をまとめたものです。また、それを呼び出すことができます。

今までに使っていたConsole.WriteLine()string.Split()int.Parse()などもメソッドです。

※Unityで使用しているStart()Update()もメソッドです。

メソッドは関数と呼ぶこともあります。C#ではメソッドと関数は同じと考えてOKです。

メソッドの定義方法は以下です。

修飾子 戻り値の型 メソッド名(引数の型 引数名, ...)
{
    ...メッソッドの処理
}

以下は挨拶をする関数SayHelloを定義しています。

using System;

public class Hello{
    public static void Main(){
        var person = new Person();
        person.SayHello("Taro");
    }
}

public class Person 
{
    public void SayHello(string name)
    {
        Console.WriteLine($"Hello, {name}");
    }    
}

メソッド名

メソッドの命名はパスカルケースで行います。

パスカルケースとはShowToStringなど、単語の先頭を大文字にする記法です。

メソッド名の命名規則ではありませんが、AddElementのように「動詞 + 名詞」の形式で命名することをおすすめします。

動詞は慣例的によく利用されるものを以下の表に記載します。

動詞役割動詞動詞
Add追加Remove削除
Get取得Set設定
Insert挿入Delete削除
Begin開始End終了
Start開始Stop終了
Open開くClose閉じる
Read読み込むWrite書き込み
Send送信Recive受信
Create生成Initalize, Init初期化

引数と戻り値

引数とはメソッドの中で参照可能な変数のことです。

メソッドを呼び出す際に、呼び出し側からメソッドに値を渡すために利用します。

引数の受け取り側の変数を仮引数と呼ぶ場合もあります。

引数の個数の上限は65536個なので、実質的に無制限です。ただし引数の把握のしやすさを考えば、5〜7個程度が実質的な上限です。

戻り値とはメソッドが処理をした結果を表します。戻り値はreturn命令によって表します。

値を戻さないメソッドはvoid型を指定します。戻り値の型がvoidである場合はreturn;と値を指定せずに書きます。

voidの場合はreturn命令は書かなくても動作します。

戻り値の型がvoid以外の場合は必ずreturn 値;を書く必要があります。

using System;

public class Hello{
    public static void Main(){
        var person = new Person();
        person.SayHello("Taro");
        Console.WriteLine(person.CreateHello("Taro"));
    }
}

public class Person 
{
    public void SayHello(string name)
    {
        Console.WriteLine($"Hello, {name}");
    }
    
    public string CreateHello(string name)
    {
        return $"Hello, {name}";
    }
}

以下はこれまでにつかっていた引数と戻り値の例です。

// "Hello"が引数
Console.WriteLine("Hello");

string str = "50,60,70";
// ','が引数であり、戻り値を変数dataに代入している
string[] data = str.Split(',');
// data[0]が引数であり(値は"50")、戻り値(整数に変換した値)を変数nに代入している
int n = int.Parse(data[0]):

参考

「独習C#」7.3 メソッド