-5

C#で2つの変数を交換するには?

すなわち:

var a = 123;
var b = "hello!";

swap(a, b); // hypothetical

System.Console.WriteLine(a);
System.Console.WriteLine(b);

出力:

こんにちは!

123

4

3 に答える 3

4

異なる型の変数ではできません。変数が同じ型の場合、最も簡単な方法は、次の「単純な」実装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) は参照型にラップされます。

于 2013-06-07T15:44:03.847 に答える
1
object varA = 123;
object varB = "hello!";
object temp = varA;
varA = varB;
varB = temp;

これは、すべての .NET バージョンのさまざまなタイプで機能するはずです (私はそう思います)。

于 2013-06-07T15:49:50.407 に答える