将<T>传递给调用GetEnum <T>的方法

Ger*_*ton 0 c# ienumerable

我正在使用一个具有返回对象的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

Jon*_*eet 5

好的,我打算对此进行一次尝试,虽然我想要澄清这个问题.我怀疑你只需要使方法通用:

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)