構文 木に(または多分)"".GetType()
あるものがあり、それをに変換したい、つまりノードをノードに変換したいと します。どうすればいいですか?ExpressionStatementSyntax
InvocationExpressionSyntax
("".GetType())
ExpressionStatementSyntax
ParenthesizedExpressionSyntax
質問する
462 次
1 に答える
3
using System;
using System.Linq;
using Roslyn.Compilers;
using Roslyn.Compilers.CSharp;
class Program
{
static void Main(string[] args)
{
var oldRootNode = Syntax.ParseCompilationUnit(
"class C { void M() { \"\".GetType(); } }");
var oldStatementNode = oldRootNode.DescendantNodes().OfType<ExpressionStatementSyntax>().First();
var oldExpressionNode = oldStatementNode.Expression;
var newExpressionNode = Syntax.ParenthesizedExpression(oldExpressionNode);
var newRootNode = oldRootNode.ReplaceNode(oldExpressionNode, newExpressionNode);
Console.WriteLine(oldRootNode.ToString());
Console.WriteLine(newRootNode.ToString());
}
}
于 2012-08-27T20:31:38.363 に答える