Tuple.Create
授業でよく使いますTuple
。今私はで作成しKeyValuePair
ています:
new KeyValuePair<string, MyAnnoyingButNecessarilyVerboseClass>(myString, myObj)
この場合、型引数を含めたくありませんでした。これは、IMO のコードを少し難読化するためです。を模倣するTuple.Create
ために以下を追加しましたKeyValuePairs
。
public static class KVP
{
public static KeyValuePair<TKey, TValue> Create<TKey, TValue>(TKey key, TValue value)
{
return new KeyValuePair<TKey, TValue>(key, value);
}
}
だから私は書くことができます
KVP.Create(myString, myObj)
型引数は他の引数から推論されるため、明示的に含める必要はありません。これはうまく機能し、マイナス面は見られません。ですから、非常に関連する質問がいくつかあります。
System.KeyValuePair
C#に静的な create メソッドを持つ非ジェネリック クラスが含まれていないのはなぜですか? (「ほとんど価値のない機能に労力を投資したくなかったので、そうしませんでした」は完全に受け入れられ、理解できる答えです)- 似たようなことをする機能がありませんか?
KeyValuePair
欠落しているクラスを作成することの欠点はありますか?- ジェネリックを作成するためのより簡潔な方法はあります
KeyValuePair
か(クラスと関数名を明らかに短縮する以外に:))?