Jac*_*ack 15 c# extension-methods dictionary
我正在尝试编写一个Dictionary
独立于Key/Value数据类型的扩展.我尝试使用object
数据类型传递它,假设它适用于任何类型.
我的代码:
public static class DictionaryExtensionsClass
{
public static void AddFormat(this Dictionary< ?? unknow type/*object*/, ??unknow type/*object*/> Dic, ??unknow type/*object*/ Key, string str, params object[] arglist)
{
Dic.Add(Key, String.Format(str, arglist));
}
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 33
您只需使该方法通用:
public static void AddFormat<TKey>(this Dictionary<TKey, string> dictionary,
TKey key,
string formatString,
params object[] argList)
{
dictionary.Add(key, string.Format(formatString, argList));
}
Run Code Online (Sandbox Code Playgroud)
请注意,它只是键类型中的通用值,因为您将要为其添加字符串值,因此该值必须是string
(或者可能object
是string
实现的接口,我猜).
遗憾的string
是,在泛型类型约束中,您无法真正表达"仅允许值类型在哪里是有效值"的约束.