Я иду из С++, где легко сделать что-то вроде этого:
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]);
Однако при попытке сделать то же самое в С#
void Swap<T>(ref T a, ref T b)
{
T temp = a;
a = b;
b = temp;
}
Я получаю ошибку "свойство или индексатор не может быть передан как параметр out или ref"
Почему это и как я могу его преодолеть?
Большое спасибо