呼び出された場所に2 つのパラメーターを送り返したい関数を取得しましたがINT
、何が最適なオプションかわかりませんDictionary
。またはList
_Array
編集済み
.Net フレームワーク 2 を使用しています
呼び出された場所に2 つのパラメーターを送り返したい関数を取得しましたがINT
、何が最適なオプションかわかりませんDictionary
。またはList
_Array
編集済み
.Net フレームワーク 2 を使用しています
呼び出し元に2つの値を返すことを意味していると思います。もしそうなら:
Tuple<T1, T2>
MyOperationResult
out
パラメーターを使用: http://msdn.microsoft.com/en-us/library/t3c3bfhx(v=vs.80).aspxそれは、発信者にとって何が最も理解しやすいか、つまり、何があなたの意図を最もよく表しているかによって異なります。
結果が常に2 つの値を持つ場合、可変サイズのコレクションを返すことは直感的ではない場合があります。私の好みは、タプルまたはカスタム型です。Tuple には、既存の型であるという利点がありますが、メンバーの意味が明確でないという欠点があります。それらは単に「Item1」、「Item2」などと呼ばれます。
このout
キーワードは、成功しない可能性があり、常に bool を返す操作に適していpublic bool int.TryParse( string value, out int parsedValue )
ます。ここで意図は明らかです。
2つのintのみを使用している場合は、2タプルを使用しTuple<int, int>
ます。
コンストラクターで2つの値を使用して初期化できます。
return new Tuple<int,int>(val1, val2);
あるいは、可変数の出力の場合、a List<int>
(またはIEnumerable<int>
使用目的に応じて)。
私はそういうように、私はそれを参照によって返す必要があると思います....
private void ReturnByRef(ref int i1, ref int i2) {
}
このコードで試してください
type1 param1;
type2 param2;
void Send(out type1 param1, out type2 param2)
or
type1 param1 = ..;//You must initialize with ref
type2 param2 = ..;
void Send(ref type1 param1, ref type2 param2)
パラメータmsdnなしで試すことができます
まあ、それは場合によりますが、それを行うには複数の方法があります。送り返したいパラメーターが 2 つだけの場合は、"out" パラメーターを使用できます。
class A
{
private static void foo(int param, out int res1, out int res2)
{
res1 = 1*param;
res2 = 2*param;
}
public static void main(string[] args)
{
int res1, res2;
foo(1, out res1, out res2);
// Do something with your results ...
}
out パラメータが最適です
static void Main()
{
int a;
int b;
someFunction(out a,out b); //the int values will be returned in a and b
Console.WriteLine(a);
Console.WriteLine(b);
}
public static void someFunction(out int x,out int y)
{
x=10;
y=20;
}
あなたの出力は
10
20