我在教自己C#,所以请原谅我,如果这似乎稍微明显。引用泛型类型中的属性?
我想写一个通用函数,我可以将一个结构数组传入,然后使用该结构的一个属性。我不知道如何在函数中声明一个通用的数据类型,以便我可以以所需的方式引用属性。
也许我所问的可以在代码中更好地传达 - 这是一个非工作函数来说明我正在尝试做什么,它如何触发我的逻辑,它应该工作而不需要真正知道如何写它:
public static int AFunctionIsThis<DataType, int DataType.Value>(DataType passedrecord)
{
temp = passedrecord.Value * 2 + 1;
return temp;
}
而我希望能够正常调用它,同时指定要传递的结构的属性。
int NewVariable = AFunctionIsThis<ThisIsAStruct, ThisIsAStruct.AnIntAttribute>(ThisIsADeclaredStruct);
三江源非常多,
Hanii小狗。
这就是我已经走了。但是,当我尝试以你所显示的方式调用函数时,这是我得到的:http://img41.imageshack.us/img41/6566/screenshot20110804at084.png –
编辑:好的,我已经得到它了使用此代码可以使用此代码声明以下函数: 'static public void Hierarchical(ref DataType [] Table,Converter ID,Converter SubordinateTo)' 而这调用函数: 'Sort.Hierarchical(ref Categories.Category,ID => Categories.Category [] .ID,SubordinateTo => Categories.Category []。SubordinateTo);' 我知道我必须声明转换为数组的转换项 - 我只是不确定如何^ _^;; 非常感谢! –
@Hanii:其实,认为你需要将数组传递给转换器是你的问题。您的排序功能将拉出阵列中的单个元素并将其传递给转换器,以获取单个ID。尝试'Sort.Hierarchical(Categories.Category,c => c.ID,c => c.SubordinateTo);'数组参数不需要传递给ref,因为数组是一个引用类型。 –