C#のメソッドのサンプルです。
目次
メソッド
| アクセス修飾子 戻り値の型 メソッド名 (引数) { return } |
- 戻り値がない場合、戻り値の型の箇所はvoidキーワードを指定します。
- 引数はメソッドにデータを渡します。パラメーターとも言います。
- returnは、メソッドの呼び出し元に値を返します。返す値を返り値または戻り値といいます。
- returnは必須ではありません。
引数なし、戻り値なしの関数のサンプル
18行目の s1.Test()が、7行目のメソッドを呼んでいます。
引数、戻り値ともにありません。
using System;
namespace Project1
{
class Sample1
{
public void Test()
{
Console.WriteLine("テスト"); //テスト
}
}
class Test1
{
static void Main()
{
int a = 1;
Sample1 s1 = new Sample1();
s1.Test();
}
}
}
引数、戻り値があるサンプル
17行目のs1.test2(2,3)が、7行目のメソッドを引数付きで呼んでいます。
9行目で計算した値をreturnで17行目の呼び出し元に返しています。18行目で5が表示されます。
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
}
}
}
引数に名前をつける
引数に名前をつけることができます。引数を順番に関係なく記述できます。
名前付きパラメーターとも呼ばれます。
コード
9行目は、メソッドの引数として2つあります。
23,26行目が名前付きパラメーターです。引数の順番が変わっていますが同じ結果になります。
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 message1 = c1.print1(name1:"赤",num1:3);
Console.WriteLine(message1); // 色は赤。数は3。
string message2 = c1.print1(num1: 3, name1: "赤");
Console.WriteLine(message2); // 色は赤。数は3。
}
}
引数を省略してデフォルト値をセット
メソッドを呼ぶ側の引数を省略してデフォルト値をセットできます。
コード
9行目の2つ目の引数は「int num1 = 3」となっています。呼び出す側の引数が一つの場合、2つ目の引数の値はこの3になります。デフォルト値を意味します。
23行目は、引数がひとつです。2つ目の引数の値はデフォルト値の3がセットされます。
26行目は、2つ目の引数に5をセットしています。この場合、セットした値の5が優先されます。
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。
}
}
以下は、MicrosoftのC#の名前付き引数と省略可能な引数 (C# プログラミング ガイド)のリンクです。
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/named-and-optional-arguments
関連の記事