![]() |
1
1
1) 如果您不介意修改源字典,只需添加到源字典并返回它,而不是执行新字典 2) 如果调用方知道具体的字典类型,则可以显式调用泛型方法并告诉它要返回的类型,或者: 3) 可以对具体类型使用泛型类 4) 与其直接使用dictionary类,不如从dictionary类派生并使其具有可克隆性。然后使用克隆而不是新字典 编辑: 对于选项2,我发现其实并不需要显式泛型调用,显式强制转换就足够了。
以下是一些注意事项: 1) 你必须使用非通用的System.Collections.IDictionary 作为参数类型。它是Dictionary和OrderedDictionary的常用类型,因为OrderedDictionary不是泛型类型 2) 要在T上做一个新的操作,并强制它只能是IDictionaries,您必须添加where子句 3) 如果没有将这两个输入的变量声明为具体类型,但只有它们的接口,事情就会变得难看,然后需要显式转换(如下所示)。在这种情况下,最好选择选项#5,让调用者传递他们想要的目标容器作为第三个参数
|
![]() |
Glory Raj · 有什么方法可以使这两个块具有共同的功能吗 2 年前 |
![]() |
Tomas Kubes · 是最大并发数。NET任务有限吗? 3 年前 |
|
Dansih · .Net核心自定义身份验证方案 3 年前 |
![]() |
It's a trap · C#-向func添加条件会导致堆栈溢出异常 3 年前 |
![]() |
user11909 · 物体怎么样。Equals()最终实现了吗? 3 年前 |