Общая сложность обмена

Я пришел из 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»

Почему это происходит и как я могу это исправить?

Большое спасибо

10
задан Heiko Rupp 16 April 2011 в 12:55
поделиться