我是从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参数传递“
这是为什么,我该如何克服它?
非常感谢
属性和索引都介绍了,如果他们的值(即使在引擎盖下他们是多种方法),方便使用它们,但这是原因之一我不喜欢他们。至少,应该有某种方式让你想要做什么工作,但是目前,大多数新语言都在这一点上吸引人。 – comco 2013-12-15 22:31:25