我是從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