我正在使用一个具有返回对象的API IEnumerable<T>,所以类似于 Object.GetEnum<T>.
我有一个方法,在其中将调用GetEnum但我想添加方法的参数传递参数类型的能力.所以我想这样做:
private void myMethod(apiClass??? apiclass)
{
IEnumerable< itemType > enumX = ObjectGetEnum< itemType >
}
private void Main()
{
myMethod(apiClass1);
myMethod(apiClass2);
}
Run Code Online (Sandbox Code Playgroud)
如上所述,我不知道myMethod中的参数类型应该是什么,或者如何编写获取枚举器的代码.我尝试传递"apiClass",即apiClass1和apiClass2继承的类.但后来却被困在那里做什么......而且我认为无论如何都不会真的有效.
所以我不确定我是否只是不知道在C#中如何做到这一点,或者如果它是可能的,...... 或者我可能在API中遗漏了某些东西(或者API缺少一些东西来促进这一点).
谢谢FKC
好的,我打算对此进行一次尝试,虽然我想要澄清这个问题.我怀疑你只需要使方法通用:
private void MyMethod<TItem>() where TItem : ApiClass
{
IEnumerable<TItem> enumX = ObjectGetEnum<TItem>();
}
private static void Main()
{
MyMethod<ApiClass1>();
MyMethod<ApiClass2>();
}
Run Code Online (Sandbox Code Playgroud)