C# クラスのメソッド(名前/デフォルト/可変長引数)

C#のクラスのメソッドのサンプルです。

目次

クラスのメソッド

アクセス修飾子 戻り値の型 メソッド名 (引数)
{
  return 値;
}
  • メソッドは処理を行うことができます。
  • 引数は、メソッドの処理に値を渡します。パラメーターとも言います。
    →引数がない場合もあります。
  • 戻り値の型は、メソッドの呼び出し元に値を返すときのデータ型です。
    →戻り値がない場合、戻り値の型の箇所はvoidを指定します。
  • returnは、メソッドの呼び出し元に値を返します。返り値または戻り値といいます。
    →returnは必須ではありません。

メソッド(引数なし、戻り値なし)

メソッド(引数なし、戻り値なし)のサンプルです。

using System;

namespace Project1
{
    class Sample1
    {
        public void Test()
        {
            Console.WriteLine("テスト");
        }
    }
    class Test1
    {
        static void Main()
        {
            Sample1 s1 = new Sample1();
            s1.Test(); //テスト
        }
    }
}

17行目は、7行目のメソッドを呼んでいます。
7行目のメソッドは、引数と戻り値がありません。

メソッド(引数あり、戻り値あり)

メソッド(引数あり、戻り値あり)のサンプルです。

using System;

namespace Project1
{
    class Sample1
    {
        public int Test(int a,int b)
        {
            return a + b;
        }
    }
    class Test1
    {
        static void Main()
        {
            Sample1 s1 = new Sample1();
            int num = s1.Test(2,3);
            Console.WriteLine(num); //5
        }
    }
}

17行目は、7行目のメソッドを引数付きで呼んでいます。
9行目で計算した値をreturnで17行目の呼び出し元に返しています。18行目で5が表示されます。

メソッドの引数に名前をつける

メソッドの引数に名前をつけるサンプルです。
引数の順番に関係なく記述できます。名前付きパラメーターとも呼ばれます。

using System;

class Class1
{
    private string name;

    public string print1(string name1,int num1)
    {
        return "色は" + name1 + "。数は" + num1 + "。";
    }
}
class Test1
{
    static void Main()
    {
        Class1 c1 = new Class1();

        string message2 = c1.print1(num1: 3, name1: "赤");
        Console.WriteLine(message2); // 色は赤。数は3。
    }
}

7行目は、メソッドの引数として2つあります。
18行目は、名前付きパラメーターです。メソッドの引数の順番が呼び出し元と呼び出し先で異なっていますが名前の指定どうりに値が渡されます。

メソッドの引数を省略してデフォルト値をセットする

メソッドの引数を省略してデフォルト値をセットするサンプルです。

using System;

class Class1
{
    private string name;

    public string print1(string name1,int num1 = 3)
    {
        return "色は" + name1 + "。数は" + num1 + "。";
    }
}
class Test1
{
    static void Main()
    {
        Class1 c1 = new Class1();

        string message1 = c1.print1("赤");
        Console.WriteLine(message1); // 色は赤。数は3。

        string message2 = c1.print1("赤",5);
        Console.WriteLine(message2); // 色は赤。数は5。
    }
}

7行目の2つ目の引数は「int num1 = 3」となっています。呼び出す側の引数が一つの場合、2つ目の引数の値はこの3になります。デフォルト値を意味します。
18行目は、引数がひとつです。2つ目の引数の値はデフォルト値の3がセットされます。
21行目は、2つ目の引数に5をセットしています。この場合、セットした値の5が優先されます。

以下は、MicrosoftのC#の名前付き引数と省略可能な引数 (C# プログラミング ガイド)のリンクです。
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/named-and-optional-arguments

可変長引数のメソッド

可変長引数のメソッドのサンプルです。

using System;

namespace Project1
{
    class Sample1
    {
        public void Test(params string[] moji)
        {
            foreach (var a in moji)
            {
                Console.WriteLine(a);
            }
        }
    }
    class Test1
    {
        static void Main()
        {
            Sample1 s1 = new Sample1();
            s1.Test("あ"); //あ
            s1.Test("あ", "い"); //あい
            s1.Test(); //出力なし
        }
    }
}

7行目は、可変長引数のメソッドです。引数のところにparamsがあり、引数のデータ型は配列です。
20行目は、引数の数が1つです。出力されます。
21行目は、引数の数が2つです。出力されます。
22行目は、引数がありませんがエラーになりません。

以下は、MicrosoftのC#のparamsのリンクです。
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/params

関連の記事

C# クラスの仕組みと使い方のサンプル
C# クラスのメソッド(値渡し/参照渡し/戻り値が複数)

△上に戻る