Следующий код скомпилируется, если foo
приведен к типу, реализующему IEnumerable
или dynamic
.Есть ли способ добиться того же, не разыгрывая foo
?Я знаю, что могу сделать два метода и не хочу навязывать больше ограничений T.
interface IDummy
{}
class FooBar<T> where T : class
{
void Bar(T foo)
{
if (foo is IEnumerable<IDummy>)
foreach (var item in foo)
B(item);
else if(foo is IDummy)
B(foo);
}
void B(IDummy item)
{
}
}