C# 当参数不同但可转换时,如何强制转换泛型类型?
我有一个方法参数,它接受C# 当参数不同但可转换时,如何强制转换泛型类型?,c#,generics,C#,Generics,我有一个方法参数,它接受IDictionary,但我想给它传递一个IDictionary(Newtonsoft.Json) 转换在运行时失败,但由于JToken提供了隐式和显式转换方法,我认为可能有一种转换方法 如何才能做到这一点 class MyClass { void Method(IDictionary<string,string> data) {} } ... IDictionary<string,JToken> record = ...; MyClas
IDictionary
,但我想给它传递一个IDictionary
(Newtonsoft.Json)
转换在运行时失败,但由于JToken
提供了隐式和显式转换方法,我认为可能有一种转换方法
如何才能做到这一点
class MyClass
{
void Method(IDictionary<string,string> data) {}
}
...
IDictionary<string,JToken> record = ...;
MyClass cls = new MyClass();
cls.Method((IDictionary<string,string>)record);
...
class-MyClass
{
void方法(IDictionary数据){}
}
...
索引记录=。。。;
MyClass cls=新的MyClass();
cls.方法((索引)记录);
...
你不能从一本词典转换到另一本词典,几乎唯一的方法就是创建一本新词典:
IDictionary<string,JToken> record = ...;
MyClass cls = new MyClass();
cls.Method(record.ToDictionary(k => k.Key,v => (string)v.Value));
IDictionary记录=。。。;
MyClass cls=新的MyClass();
方法(record.ToDictionary(k=>k.Key,v=>(string)v.Value));
你不能从一本词典转换到另一本词典,几乎唯一的方法就是创建一本新词典:
IDictionary<string,JToken> record = ...;
MyClass cls = new MyClass();
cls.Method(record.ToDictionary(k => k.Key,v => (string)v.Value));
IDictionary记录=。。。;
MyClass cls=新的MyClass();
方法(record.ToDictionary(k=>k.Key,v=>(string)v.Value));