C#でメソッドからタプルを返す方法
C#では、メソッドの戻り値としてタプルを返すことができます。これにより、複数の値をひとまとめにして呼び出し元へ返せるようになります。ここでは、メソッドからタプルを返す基本的な手順を解説します。
手順1:メソッドを呼び出してタプルを受け取る
まず、以下のようにメソッドを呼び出し、その結果をタプル型の変数に格納します。
var tuple = Show();
手順2:メソッド側でタプルを定義する
上記のステートメントは、次のシグネチャを持つメソッドを呼び出しています。
static Tuple<int, int, int, int, int> Show()
このメソッド内では、Tuple.Create を使ってタプルを生成し、return文で呼び出し元に返します。
コード例
using System;
public class Demo {
public static void Main() {
var tuple = Show();
Console.WriteLine(tuple.Item1);
Console.WriteLine(tuple.Item2);
Console.WriteLine(tuple.Item3);
Console.WriteLine(tuple.Item4);
Console.WriteLine(tuple.Item5);
}
static Tuple<int, int, int, int, int> Show() {
return Tuple.Create(3, 5, 7, 9, 11);
}
}実行結果
3 5 7 9 11
ポイント解説
Tuple<T1, T2, ...>は、異なる型の複数の値を格納できるクラスです。- 各要素には
Item1、Item2のようにプロパティ経由でアクセスします。 - C# 7.0以降では、より簡潔な値タプル(ValueTuple)や名前付き要素を使うことも可能です。例:
(int A, int B) Show() => (3, 5);
このように、タプルを活用すればoutパラメータや専用クラスを定義することなく、メソッドから複数の値を手軽に返せます。
-
【C++入門】関数から配列を返す方法|ポインタとstatic変数を使った実装テクニック
C++では、配列全体をそのまま関数の戻り値として返すことはできません。しかし、配列へのポインタを返すことで、実質的に同じ目的を達成することが可能です。ここで注意すべき点が1つあります。関数内で宣言された通常のローカル変数(自動変数)は、関数の処理が終了すると同時にメモリから破棄されるため、そのアドレスを関数の外へ返しても正しく動作しません。この問題を解決するのがstatic変数です。ローカル変数を static として宣言すると、その変数はプログラムの実行中ずっとメモリ上に保持されるため、関数が終了した後もアドレスを安全に参照できるようになります。ポインタを返す関数の基本構文配列へのポインタを
-
C#のジェネリックメソッドからnullを返す方法:default(T)の使い方
ジェネリック(Generics)を使うと、フィールド、メソッド、パラメータなどの型をプレースホルダー(型パラメータ)として持つクラスを定義できます。これらのプレースホルダーは、コンパイル時に具体的な型へと置き換えられます。ジェネリックは山括弧 <> を使って定義するのが基本です。C#のコレクションにおける主な制限の一つは、効果的な型チェックが行えないことです。C#ではすべてのクラスがobject基底クラスから派生しているため、コレクションには原理的にどんなオブジェクトでも格納できてしまいます。さらに、通常のメソッドとは異なり、ジェネリックメソッドから単純にnullを返すことはできま