¿Existe un método como este en cualquier parte del marco?¿Hay un método de intercambio genérico en el marco?
public static void Swap<T>(ref T left, ref T right) {
T temp;
temp = left;
left = right;
right = temp;
}
Si no, ¿por qué razón?
Interlocked.Exchange establece un valor, en realidad no intercambia valores. Aún necesitaría guardar una temperatura y llamar a Interlocked.Exchange dos veces para que no gane nada. – jrista
Interlocked.Exchange no es realmente equivalente al Swap especificado. Solo cambia el primer valor y no toca el segundo (sí mismo). –
@Mehdrad: left = InterlockedExchange (ref derecha, izquierda); –