У меня есть этот код для синтаксического анализа:Получение числа итераций с Microsoft Рослин из условия цикла
int[] tab1 = { 0, 1, 2, 3, 4 };
for (var i = 0; i < tab1.Length - 1; i++) { };
Как я могу получить точное значение tab1.Length - 1 (4 в этом примере) с использованием Microsoft Рослин?
я могу найти выражение tab1.Length - 1 с этим кодом:
var collector = new ForCollector();
foreach (var statement in collector.ForStatements)
{
Console.WriteLine(statement.Condition.ChildNodes().ElementAt(1));
}
Где ForCollector класс наследующий SyntaxWalker с функцией коррекции VisitForStatement, но я не знаю, как получить значение tab1.Length , Полагаю, для этой цели я должен использовать SemanticModel.
Версия Рослин - сентябрь 2012
Я не понимаю. Вам не нужно просто писать 'i' в вашей петле? –
Что он должен вернуть, когда 'tab1' является параметром метода? Или это зависит от пользовательского ввода? Или, если его длина вычисляется с помощью «Случайного»? – svick
Какая версия Roslyn? – kakridge