ConditionalWeakTable<TKey,TValue>.GetOrAdd Metoda

Definice

Přetížení

Name Description
GetOrAdd(TKey, Func<TKey,TValue>)

Vyhledá zadaný klíč v tabulce a vrátí odpovídající hodnotu. Pokud klíč v tabulce neexistuje, metoda vyvolá zadanou továrnu k vytvoření hodnoty, která je vázána na zadaný klíč.

GetOrAdd(TKey, TValue)

Vyhledá zadaný klíč v tabulce a vrátí odpovídající hodnotu. Pokud klíč v tabulce neexistuje, metoda přidá danou hodnotu a vytvoří vazbu se zadaným klíčem.

GetOrAdd<TArg>(TKey, Func<TKey,TArg,TValue>, TArg)

Vyhledá zadaný klíč v tabulce a vrátí odpovídající hodnotu. Pokud klíč v tabulce neexistuje, metoda vyvolá zadanou továrnu k vytvoření hodnoty, která je vázána na zadaný klíč.

GetOrAdd(TKey, Func<TKey,TValue>)

Zdroj:
ConditionalWeakTable.cs
Zdroj:
ConditionalWeakTable.cs

Vyhledá zadaný klíč v tabulce a vrátí odpovídající hodnotu. Pokud klíč v tabulce neexistuje, metoda vyvolá zadanou továrnu k vytvoření hodnoty, která je vázána na zadaný klíč.

public:
 TValue GetOrAdd(TKey key, Func<TKey, TValue> ^ valueFactory);
public TValue GetOrAdd(TKey key, Func<TKey,TValue> valueFactory);
member this.GetOrAdd : 'Key * Func<'Key, 'Value (requires 'Key : null and 'Value : null)> -> 'Value
Public Function GetOrAdd (key As TKey, valueFactory As Func(Of TKey, TValue)) As TValue

Parametry

key
TKey

Klíč hodnoty, kterou chcete najít. Nemůže být null.

valueFactory
Func<TKey,TValue>

Zpětné volání, které vytvoří hodnotu pro klíč, pokud ještě neexistuje. Nemůže být null.

Návraty

TValue

Hodnota vázaná na TKey aktuální ConditionalWeakTable<TKey,TValue> instanci po dokončení metody.

Výjimky

key nebo valueFactory je null.

Poznámky

Pokud se více vláken pokusí inicializovat stejný klíč, může tabulka vyvolat valueFactory vícekrát se stejným klíčem. Přesně jedno z těchto volání bude úspěšné a vrácená hodnota tohoto volání bude ta, která se přidá do tabulky a vrátí všechna závodní GetOrAdd(TKey, Func<TKey,TValue>) volání. Toto pravidlo umožňuje, aby se tabulka vyvolala valueFactory mimo vnitřní zámek tabulky, aby se zabránilo zablokování.

Platí pro

GetOrAdd(TKey, TValue)

Zdroj:
ConditionalWeakTable.cs
Zdroj:
ConditionalWeakTable.cs

Vyhledá zadaný klíč v tabulce a vrátí odpovídající hodnotu. Pokud klíč v tabulce neexistuje, metoda přidá danou hodnotu a vytvoří vazbu se zadaným klíčem.

public:
 TValue GetOrAdd(TKey key, TValue value);
public TValue GetOrAdd(TKey key, TValue value);
member this.GetOrAdd : 'Key * 'Value -> 'Value
Public Function GetOrAdd (key As TKey, value As TValue) As TValue

Parametry

key
TKey

Klíč hodnoty, kterou chcete najít. Nemůže být null.

value
TValue

Hodnota, která se má přidat a svázat s TKey, pokud ještě neexistuje.

Návraty

TValue

Hodnota vázaná na TKey aktuální ConditionalWeakTable<TKey,TValue> instanci po dokončení metody.

Výjimky

key je null.

Platí pro

GetOrAdd<TArg>(TKey, Func<TKey,TArg,TValue>, TArg)

Zdroj:
ConditionalWeakTable.cs
Zdroj:
ConditionalWeakTable.cs

Vyhledá zadaný klíč v tabulce a vrátí odpovídající hodnotu. Pokud klíč v tabulce neexistuje, metoda vyvolá zadanou továrnu k vytvoření hodnoty, která je vázána na zadaný klíč.

public:
generic <typename TArg>
 TValue GetOrAdd(TKey key, Func<TKey, TArg, TValue> ^ valueFactory, TArg factoryArgument);
public TValue GetOrAdd<TArg>(TKey key, Func<TKey,TArg,TValue> valueFactory, TArg factoryArgument) where TArg : allows ref struct;
member this.GetOrAdd : 'Key * Func<'Key, 'Arg, 'Value (requires 'Key : null and 'Value : null)> * 'Arg -> 'Value
Public Function GetOrAdd(Of TArg) (key As TKey, valueFactory As Func(Of TKey, TArg, TValue), factoryArgument As TArg) As TValue

Parametry typu

TArg

Typ dalšího argumentu, který se má použít s objektem pro vytváření hodnot.

Parametry

key
TKey

Klíč hodnoty, kterou chcete najít. Nemůže být null.

valueFactory
Func<TKey,TArg,TValue>

Zpětné volání, které vytvoří hodnotu pro klíč, pokud ještě neexistuje. Nemůže být null.

factoryArgument
TArg

Další argument, který se má zadat při valueFactory vyvolání.

Návraty

TValue

Hodnota vázaná na TKey aktuální ConditionalWeakTable<TKey,TValue> instanci po dokončení metody.

Výjimky

key nebo valueFactory je null.

Poznámky

Pokud se více vláken pokusí inicializovat stejný klíč, může tabulka vyvolat valueFactory vícekrát se stejným klíčem. Přesně jedno z těchto volání bude úspěšné a vrácená hodnota tohoto volání bude ta, která se přidá do tabulky a vrátí všechna závodní GetOrAdd<TArg>(TKey, Func<TKey,TArg,TValue>, TArg) volání. Toto pravidlo umožňuje, aby se tabulka vyvolala valueFactory mimo vnitřní zámek tabulky, aby se zabránilo zablokování.

Platí pro