5

私の人生では、このコード行の理由がわかりません。

var literalExpressionSyntax = 
     Syntax.LiteralExpression(SyntaxKind.CharacterLiteralExpression);

ArgumentOutOfRangeExceptionRoslyn CTP3の下に投げます。

4

2 に答える 2

3

2 番目のパラメーターがオプションである理由は、一部の SyntaxKind値に対してテキストが暗示されるためです。たとえばSyntaxKind.TrueLiteral、最初の引数を渡す場合は、2 番目の引数を省略できます。ただし、最初のパラメーターに基づいて 2 番目のパラメーターに適切な既定値がない場合は、ArgumentOutOfRangeException.

あなたの例では、次の式を作成できます。

Syntax.LiteralExpression(SyntaxKind.CharacterLiteralExpression, Syntax.Literal('a'))

于 2013-02-03T03:49:58.227 に答える
2

実際のリテラルである 2 番目の引数を指定しないでください。

于 2013-02-03T03:24:30.997 に答える