C#で2つの変数を交換するには?
すなわち:
var a = 123;
var b = "hello!";
swap(a, b); // hypothetical
System.Console.WriteLine(a);
System.Console.WriteLine(b);
出力:
こんにちは!
123
C#で2つの変数を交換するには?
すなわち:
var a = 123;
var b = "hello!";
swap(a, b); // hypothetical
System.Console.WriteLine(a);
System.Console.WriteLine(b);
出力:
こんにちは!
123
異なる型の変数ではできません。変数が同じ型の場合、最も簡単な方法は、次の「単純な」実装temp
です。
var temp = a;
a = b;
b = temp;
swap
これを、参照によってパラメーターを受け取るメソッドにラップできます。
static void Swap<T>(ref T a, ref T b) {
var temp = a;
a = b;
b = temp;
}
静的に型指定された変数の型を変更することはできません (var
はコンパイル時に決定される静的型を使用します)。object
実行時に変数の型を変更する必要がある場合に、変数を宣言できdynamic
ます。ただし、その場合、値の型 ( を含むint
) は参照型にラップされます。
object varA = 123;
object varB = "hello!";
object temp = varA;
varA = varB;
varB = temp;
これは、すべての .NET バージョンのさまざまなタイプで機能するはずです (私はそう思います)。