3
我想了解Roslyn編譯器如何工作。編輯循環在Roslyn
我正在嘗試編寫簡單的函數,它將分析代碼並將循環語句從增加到減少。
例如改變:
for(int i=0; i<10; i++)
int a = i;
到:
for(int i=9; i>=0; i--)
int a=i;
我寫arleady代碼,發現循環,但我不知道如何編輯它。
這是我迄今所做的:
SyntaxTree tree = CSharpSyntaxTree.ParseText(
@"using System;
using System.Collections.Generic;
using System.Text;
static void Main(string[] args)
{
for(int i=0; i<10; i++)
int a = i;
}");
var root = (CompilationUnitSyntax)tree.GetRoot();
IEnumerable<ForStatementSyntax> forStatementSyntaxs = root.DescendantNodes().OfType<ForStatementSyntax>();
ForStatementSyntax forStatementSyntax = forStatementSyntaxs.First();
ExpressionSyntax expressionSyntax = forStatementSyntax.Incrementors.First();
我想知道如何與羅斯林改變「for循環」的聲明。此外,如何更改該循環包含的表達式。
您的問題是什麼? – DLeh 2014-08-29 14:13:11
如何更改Roslyn'for循環'聲明。此外,如何更改該循環包含的表達式。 – Tomasz 2014-08-30 11:09:36