Czy taka metoda istnieje w dowolnym miejscu w ramach?Czy w strukturze istnieje ogólna metoda wymiany?
public static void Swap<T>(ref T left, ref T right) {
T temp;
temp = left;
left = right;
right = temp;
}
Jeśli nie, to dlaczego?
Interlocked.Echange ustawia wartość, w rzeczywistości nie zamienia wartości. Nadal będziesz musiał zapisać temp, i zadzwonić do Interlocked.Exchange dwa razy, więc naprawdę nic nie zyskasz. – jrista
Interlocked.Exchange nie jest tak naprawdę odpowiednikiem określonej zamiany. Zmienia tylko pierwszą wartość i nie dotyka drugiej (samej). –
@Mehdrad: left = InterlockedExchange (ref right, left); –