私の人生では、このコード行の理由がわかりません。
var literalExpressionSyntax =
Syntax.LiteralExpression(SyntaxKind.CharacterLiteralExpression);
ArgumentOutOfRangeException
Roslyn CTP3の下に投げます。
2 番目のパラメーターがオプションである理由は、一部の SyntaxKind
値に対してテキストが暗示されるためです。たとえばSyntaxKind.TrueLiteral
、最初の引数を渡す場合は、2 番目の引数を省略できます。ただし、最初のパラメーターに基づいて 2 番目のパラメーターに適切な既定値がない場合は、ArgumentOutOfRangeException
.
あなたの例では、次の式を作成できます。
Syntax.LiteralExpression(SyntaxKind.CharacterLiteralExpression, Syntax.Literal('a'))
実際のリテラルである 2 番目の引数を指定しないでください。