C#のメソッドに配列を引数として渡す方法を解説
C#では、配列をそのままメソッドの引数として渡すことができます。本記事では、配列の宣言・初期化から、メソッドへの受け渡し、実際のサンプルコードと実行結果まで、順を追ってわかりやすく解説します。
1. 配列の宣言と初期化
まず、メソッドに渡すための配列を宣言し、初期化しておきましょう。ここでは、5つの要素を持つint型の配列を用意します。
MyArray app = new MyArray();
/* 5つの要素を持つint型配列 */
int[] balance = new int[]{1000, 2, 3, 17, 50};
2. 配列を受け取るメソッドを定義する
次に、配列を引数として受け取るメソッドを定義します。引数の型を「int[]」のように配列型として指定することで、配列を受け取れるようになります。
double getAverage(int[] arr, int size) {
// 平均値を計算する処理
}
この例では、第1引数「arr」でint型の配列を、第2引数「size」で配列の要素数を受け取り、要素の合計を要素数で割った平均値を返しています。
3. メソッドを呼び出して配列を渡す
メソッドを呼び出す際は、通常の変数と同じように、引数として配列名を指定するだけです。
avg = app.getAverage(balance, 5);
サンプルコード(完全なプログラム)
以下は、C#でメソッドに配列を渡して平均値を求める完全なサンプルプログラムです。
using System;
namespace ArrayApplication {
class MyArray {
double getAverage(int[] arr, int size) {
int i;
double avg;
int sum = 0;
for (i = 0; i < size; ++i) {
sum += arr[i];
}
avg = (double)sum / size;
return avg;
}
static void Main(string[] args) {
MyArray app = new MyArray();
/* 5つの要素を持つint型配列 */
int[] balance = new int[]{1000, 2, 3, 17, 50};
double avg;
/* 配列への参照を引数として渡す */
avg = app.getAverage(balance, 5);
/* 戻り値を出力 */
Console.WriteLine("Average value is: {0}", avg);
Console.ReadKey();
}
}
}
実行結果
Average value is: 214.4
ポイント:C#の配列は参照型
C#において配列は参照型である点に注意しましょう。メソッドに配列を渡す場合、配列全体のコピーが作られるのではなく、元の配列への参照が渡されます。そのため、メソッド内で配列の要素を変更すると、呼び出し元の配列にもその変更が反映されます。
一方、配列そのものを別の配列で置き換えるような操作を行いたい場合は、「ref」キーワードや「out」キーワードを使うことで、意図した動作を実現できます。用途に応じて使い分けると良いでしょう。
-
C#でクラスのメソッドを呼び出す方法をわかりやすく解説
C#でクラスのメソッドを呼び出すには、オブジェクト名の後にドット(.)を付けて、その後にメソッド名を記述します。基本的な構文は以下のとおりです。obj1.Display();メソッド呼び出しの基本例として、クラス名が「ApplicationOne」である場合を考えてみましょう。このクラスのインスタンスを生成し、メソッドを呼び出すコードは次のようになります。ApplicationOne one = new ApplicationOne(); // displayMaxメソッドの呼び出し ret = one.displayMax(a, b);まず new キーワードを使ってクラスのインスタンスを
-
C#でカスタムメソッドを定義する方法を徹底解説!基本構文と実例付き
C#で独自のメソッド(カスタムメソッド)を定義するには、以下の構文を使用します。<アクセス修飾子> <戻り値の型> <メソッド名>(パラメータリスト) { メソッド本体 }メソッドを構成する要素メソッドは、以下の各要素によって構成されます。それぞれの役割を理解しておくことが、C#プログラミングの基礎となります。アクセス修飾子(Access Specifier) − 他のクラスからその変数やメソッドがどの程度参照できるか(可視性)を決定します。代表的なものに public、private、protected などがあります。戻り値の型(Return T