Przeczytałem dokumentację MSDN, ale tak naprawdę jej nie rozumiałem.
Uważam, że zachowanie Set
jest „zastąp istniejące lub dodaj” (atomowo).
Czy to jest poprawne?
Przeczytałem dokumentację MSDN, ale tak naprawdę jej nie rozumiałem.
Uważam, że zachowanie Set
jest „zastąp istniejące lub dodaj” (atomowo).
Czy to jest poprawne?
Odpowiedzi:
Add
nic nie robi (zwraca false
), jeśli istnieje już wartość dla tego klucza. Set
w razie potrzeby wprowadza lub aktualizuje.
Remove
+ Add
pozostawiłoby lukę w środku, gdy inny wątek pytający o ten klucz nie dostałby żadnej wskazówki ( Set
nie; wymiana jest zwykle atomowa); jako taki, chociaż Set
ma ten sam wynik końcowy co Remove
+ Add
, różnica w mechanizmach jest ważna, ponieważ może wpływać na innych rozmówców.
Na przykład Add :
Wartość zwracana
Wpisz: System.Boolean true, jeśli wstawienie powiodło się lub false, jeśli istnieje już wpis w pamięci podręcznej, który ma ten sam klucz co klucz.
set
zastępuje zasady, jeśli przedmiot istnieje?