C# 在c中如何在编译时循环遍历泛型类型#
T在运行时已知。但我想在编译时将T转换为IEnumerable对象类型,并在其中循环C# 在c中如何在编译时循环遍历泛型类型#,c#,generics,C#,Generics,T在运行时已知。但我想在编译时将T转换为IEnumerable对象类型,并在其中循环 public void x<T>(T obj) { //T is IEnumerable<object> //how to loop through T on compile time? } public void x(T obj) { //T是数不清的 //如何在编译时循环T? } 这听起来很简单 public void x<T>(T obj)
public void x<T>(T obj)
{
//T is IEnumerable<object>
//how to loop through T on compile time?
}
public void x(T obj)
{
//T是数不清的
//如何在编译时循环T?
}
这听起来很简单
public void x<T>(T obj)
{
//T is IEnumerable<object>
//how to loop through T on compile time?
try
{
foreach (var item in (IEnumerable)obj)
{
// Do what you want
}
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
public void x(T obj)
{
//T是数不清的
//如何在编译时循环T?
尝试
{
foreach(变量项在(IEnumerable)对象中)
{
//做你想做的
}
}
捕获(例外情况除外)
{
控制台写入线(例如消息);
}
}
这看起来像是一个设计问题,简而言之,如果您知道这将是一个IEnumerable
,那么您的签名可能会反映出public void x(IEnumerable list)
@MichaelRandall感谢您的评论。但有时T不是一个可数函数,有时它是一个字符串,有时它是一个类。哦,谢谢。这就是我要找的。我将对象装箱到(列表)obj中,显然给了我一个错误。忘记使用IEnumerable。我在学习c#net时玩得很开心。谢谢