从泛型(C#)创建强类型对象时发生编译错误

从泛型(C#)创建强类型对象时发生编译错误,c#,generics,C#,Generics,这里是我的类…我删去了所有内容,只留下了最简单的代码来说明问题所在。下面,我标记了没有使用代码注释编译的行(它们位于Mapping.GetMapTuples()中) 公共类映射源 { 受保护字典dictMap=新字典(); 公共映射源() { } 公共T GetValue(字符串键) { T值; if(dictMap.TryGetValue(键,输出值)) { 返回值; } 返回默认值(T); } } 公共类映射 { MappingSource\u source1; MappingSource\

这里是我的类…我删去了所有内容,只留下了最简单的代码来说明问题所在。下面,我标记了没有使用代码注释编译的行(它们位于Mapping.GetMapTuples()中)

公共类映射源
{
受保护字典dictMap=新字典();
公共映射源()
{
}
公共T GetValue(字符串键)
{
T值;
if(dictMap.TryGetValue(键,输出值))
{
返回值;
}
返回默认值(T);
}
}
公共类映射
{
MappingSource\u source1;
MappingSource\u source2;
列表元组;
公共映射(MappingSource source1、MappingSource source2)
{
元组=新列表();
_source1=source1;
_source2=source2;
}
公共列表GetMapTuples()
{
列表=新列表();
foreach(元组中的元组)
{
//在这里,我需要能够返回MapTuple的列表
//对象。我尝试了三种变体;它们都不起作用;
//这样不行
//“无法将'D'隐式转换为'D[C:\test\Form1.cs(166)]”
S vs=_source1.GetValue(tuple.Item1);
D vd=_source2.GetValue(tuple.Item2);
MapTuple MapTuple=新的MapTuple(vs,vd);
//这种方法不起作用;它不喜欢var类型
//“Examples16.MapTuple.MapTuple(S,D)”的最佳重载方法匹配具有一些无效参数
var vsv=_source1.GetValue(tuple.Item1);
var vdv=_source2.GetValue(tuple.Item2);
MapTuple mapTuple2=新的MapTuple(vsv,vdv);
//这种方法不起作用;错误与第一种方法相同
//“无法将'D'隐式转换为'D[C:\test\Form1.cs(166)]”
var vsv2=_source1.GetValue(tuple.Item1);
var vdv2=_source2.GetValue(tuple.Item2);
MapTuple mapTuple3=新的MapTuple((S)vsv2,(D)vdv2);
}
返回null;
}
}
公共类映射元组
{
S_源;
目的地;
公共映射元组(S源,D目标)
{
_来源=来源;
_目的地=目的地;
}
}

唯一需要的是:

public List<MapTuple<S, D>> GetMapTuples()
不是此处定义的(并在方法中使用的):

GetMapTuples()

请查看。

唯一需要的是:

public List<MapTuple<S, D>> GetMapTuples()
不是此处定义的(并在方法中使用的):

GetMapTuples()

请查看。

唯一需要的是:

public List<MapTuple<S, D>> GetMapTuples()
不是此处定义的(并在方法中使用的):

GetMapTuples()

请查看。

唯一需要的是:

public List<MapTuple<S, D>> GetMapTuples()
不是此处定义的(并在方法中使用的):

GetMapTuples()

查看。

公共列表GetMapTuples()
公共类映射中,您对泛型类型使用了相同的名称。如果它们是相同的
S
D
,则方法上不需要它们。在
公共列表GetMapTuples()和
公共类映射中,您对泛型类型使用的名称相同。如果它们是相同的
S
D
,则方法上不需要它们。在
公共列表GetMapTuples()和
公共类映射中,您对泛型类型使用的名称相同。如果它们是相同的
S
D
,则方法上不需要它们。在
公共列表GetMapTuples()和
公共类映射中,您对泛型类型使用的名称相同。如果它们是相同的
S
D
,则方法上不需要它们。
GetMapTuples<S, D>()