如何在 C# 中交换两个变量?
IE:
var a = 123;
var b = "hello!";
swap(a, b); // hypothetical
System.Console.WriteLine(a);
System.Console.WriteLine(b);
输出:
你好!
123
如何在 C# 中交换两个变量?
IE:
var a = 123;
var b = "hello!";
swap(a, b); // hypothetical
System.Console.WriteLine(a);
System.Console.WriteLine(b);
输出:
你好!
123
你不能用不同类型的变量来做。当变量属于同一类型时,最简单的方法是“天真的”实现,带有 a 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
s)将被包装在引用类型中。
object varA = 123;
object varB = "hello!";
object temp = varA;
varA = varB;
varB = temp;
这应该适用于所有 .NET 版本的不同类型(我认为)。
You can't do that with var
.
If you really needed to do something like that, you could use dynamic
and your typical implementation of a swap with temp:
dynamic a = 123;
dynamic b = "hello!";
var temp = a;
a = b;
b = temp;