ConditionalWeakTable<TKey,TValue>.GetOrAdd メソッド

定義

オーバーロード

名前 説明
GetOrAdd(TKey, Func<TKey,TValue>)

テーブル内の指定したキーを検索し、対応する値を返します。 キーがテーブルに存在しない場合、メソッドは指定されたファクトリを呼び出して、指定されたキーにバインドされた値を作成します。

GetOrAdd(TKey, TValue)

テーブル内の指定したキーを検索し、対応する値を返します。 キーがテーブルに存在しない場合、メソッドは指定された値を追加し、指定したキーにバインドします。

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

テーブル内の指定したキーを検索し、対応する値を返します。 キーがテーブルに存在しない場合、メソッドは指定されたファクトリを呼び出して、指定されたキーにバインドされた値を作成します。

GetOrAdd(TKey, Func<TKey,TValue>)

ソース:
ConditionalWeakTable.cs
ソース:
ConditionalWeakTable.cs

テーブル内の指定したキーを検索し、対応する値を返します。 キーがテーブルに存在しない場合、メソッドは指定されたファクトリを呼び出して、指定されたキーにバインドされた値を作成します。

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

パラメーター

key
TKey

検索する値のキー。 nullすることはできません。

valueFactory
Func<TKey,TValue>

キーの値を作成するコールバック (まだ存在しない場合)。 nullすることはできません。

返品

TValue

メソッドの完了後、現在のConditionalWeakTable<TKey,TValue> インスタンスのTKeyにバインドされた値。

例外

key または valueFactorynull

注釈

複数のスレッドが同じキーを初期化しようとすると、テーブルは同じキーで valueFactory 複数回呼び出すことができます。 これらの呼び出しのうち 1 つだけが成功し、その呼び出しの戻り値がテーブルに追加され、すべてのレーシング GetOrAdd(TKey, Func<TKey,TValue>) 呼び出しによって返されます。 この規則により、テーブルは内部テーブル ロックの外部で valueFactory を呼び出して、デッドロックを防ぐことができます。

適用対象

GetOrAdd(TKey, TValue)

ソース:
ConditionalWeakTable.cs
ソース:
ConditionalWeakTable.cs

テーブル内の指定したキーを検索し、対応する値を返します。 キーがテーブルに存在しない場合、メソッドは指定された値を追加し、指定したキーにバインドします。

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

パラメーター

key
TKey

検索する値のキー。 nullすることはできません。

value
TValue

TKeyに追加してバインドする値 (まだ存在しない場合)。

返品

TValue

メソッドの完了後、現在のConditionalWeakTable<TKey,TValue> インスタンスのTKeyにバインドされた値。

例外

keynullです。

適用対象

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

ソース:
ConditionalWeakTable.cs
ソース:
ConditionalWeakTable.cs

テーブル内の指定したキーを検索し、対応する値を返します。 キーがテーブルに存在しない場合、メソッドは指定されたファクトリを呼び出して、指定されたキーにバインドされた値を作成します。

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

型パラメーター

TArg

値ファクトリで使用する追加引数の型。

パラメーター

key
TKey

検索する値のキー。 nullすることはできません。

valueFactory
Func<TKey,TArg,TValue>

キーの値を作成するコールバック (まだ存在しない場合)。 nullすることはできません。

factoryArgument
TArg

呼び出し時に valueFactory に指定する追加の引数。

返品

TValue

メソッドの完了後、現在のConditionalWeakTable<TKey,TValue> インスタンスのTKeyにバインドされた値。

例外

key または valueFactorynull

注釈

複数のスレッドが同じキーを初期化しようとすると、テーブルは同じキーで valueFactory 複数回呼び出すことができます。 これらの呼び出しのうち 1 つだけが成功し、その呼び出しの戻り値がテーブルに追加され、すべてのレーシング GetOrAdd<TArg>(TKey, Func<TKey,TArg,TValue>, TArg) 呼び出しによって返されます。 この規則により、テーブルは内部テーブル ロックの外部で valueFactory を呼び出して、デッドロックを防ぐことができます。

適用対象