我来自C++,在那里做这样的事情很容易:
template<class T>
void Swap(T &a, T &b)
{
T temp = a;
a = b;
b = temp;
}
然后,您可以使用它来交换容器中的值:
std::vector<int> someInts;
someInts.push_back(1);
someInts.push_back(2);
Swap(someInts[0], someInts[1]);
然而,在尝试使用C#执行相同操作时,
void Swap<T>(ref T a, ref T b)
{
T temp = a;
a = b;
b = temp;
}
我遇到了“属性或索引器不能作为 out 或 ref 参数传递”的错误。为什么会出现这个错误,我该如何克服它呢?非常感谢。