zasadniczo buduję bardzo ogólny szablon T4 i jedną z rzeczy, których potrzebuję, jest wydrukowanie variable.ToString()
. Chciałbym jednak, abyśmy ocenili listy i foreach za ich pośrednictwem i zamiast tego wydrukowali ListItem.ToString()
Mój szablon T4 nie wie, jaki typ variable
będzie przed czasem, dlatego jest tak ogólny.Jak sprawdzić, czy zmienna jest IEnumerable jakiegoś rodzaju
Ale mój aktualny kod, który zostanie wygenerowany wygląda następująco:
if(variable!=null)
if(variable is IEnumerable) //error here
foreach(var item in variable)
Write(item.ToString());
otrzymuję błąd kompilatora na zaznaczonej linii dla „Używanie ogólny typ System.Generic.Collections.IEnumerable wymaga jednego argumentu typu”
Nie obchodzi mnie, jaki to jest typ, chcę tylko wiedzieć, czy można się przedostać przez zmienną. Jakiego kodu powinienem użyć?
Wygląda na to, że może to być lepsza odpowiedź. – Earlz
Zmieniłem odpowiedź, ponieważ skończyłem, używając tej metody, która moim zdaniem jest znacznie czystsza. – Earlz
Ponadto, aby ominąć opisany wyżej błąd Mono, musiałem najpierw rzucić 'variable' na' object'. – Earlz