Perl には次の機能があります。
my ($a,$b,$c,$d) = foo();
wherefooは、一度に 1 つずつ割り当てるのではなく、4 つの変数を返します。C#に似たようなものはありますか?
Tupleは、これに役立つ構成要素になる可能性があります。
public Tuple<int, string, double> Foo() { ... }
次に、次のことができます。
var result = Foo();
int a = result.Item1;
string b = result.Item2;
double c = result.Item3;
これは、C# に対する関数型プログラミング スタイルの影響が増大したことの遺産です。タプルは、多くの関数型言語の基本的な構成要素であり、静的型付けを大幅に支援します。
関数の場合、1 つのオブジェクトまたは のいずれかを返す必要がありますvoid。しかし、この問題にはいくつかの方法でアプローチできます。
structaまたは aなどのデータ構造を作成して、関数としてclassそれを含みa,b,c,d、返すことができます。たとえばdata foo()、データには a、b、c、d が含まれます。outが、変数入力を初期化する必要があります。詳細はこちら。http://msdn.microsoft.com/en-us/library/t3c3bfhx(v=vs.80).aspxを参照してください。refout と同じように which を使用することもできます。http://msdn.microsoft.com/en-US/library/14akc2c7(v=vs.80).aspxを参照してください。arrrayまたは aとしてコレクションの形式でそれらを返すことができますlistまた、 strcut を渡すタイプと、値を渡すオブジェクトのタイプに応じて、Valueまたはとして渡されることも覚えておいてくださいReference。http://msdn.microsoft.com/en-us/library/0f66670z(v=vs.71).aspxを参照してください。