public static InvocationExpressionSyntax ToNameof(this string name) { return(SF.InvocationExpression( SF.IdentifierName("nameof")) .WithArgumentList( SF.ArgumentList( SF.SingletonSeparatedList <ArgumentSyntax>( SF.Argument( SF.IdentifierName("C")))))); }
public static LocalDeclarationStatementSyntax LocalVairableDeclaration( this TypeSyntax type, string name, ExpressionSyntax value = null) { var declarator = SF.VariableDeclarator(SF.Identifier(name)); if (value != null) { declarator = declarator.WithInitializer(SF.EqualsValueClause(value)); } var delaration = SF.LocalDeclarationStatement( SF.VariableDeclaration(type) .WithVariables(SF.SingletonSeparatedList(declarator))); return(delaration); }
private LocalFunctionStatementSyntax ConvertLambda(LambdaExpressionSyntax node) { LambdaExpressionSyntax visited; ParameterListSyntax parameterList; switch (node) { case ParenthesizedLambdaExpressionSyntax parLambda: { var v = (ParenthesizedLambdaExpressionSyntax)base.VisitParenthesizedLambdaExpression(parLambda); parameterList = v.ParameterList; visited = v; break; } case SimpleLambdaExpressionSyntax simpleLambda: { var v = (SimpleLambdaExpressionSyntax)base.VisitSimpleLambdaExpression(simpleLambda); parameterList = SyntaxFactory.ParameterList( SyntaxFactory.SingletonSeparatedList(v.Parameter) ); visited = v; break; } default: throw new NotImplementedException(); } if (_lambdaNumbersDict.TryGetValue(node, out var index)) { return(SyntaxFactory.LocalFunctionStatement(GetDummyMethodReturnType(), $"lambda__{index}") .NormalizeWhitespace() .WithParameterList(parameterList) .WithBody((BlockSyntax)visited.Body)); } else { throw new Exception(); } }
public FieldDeclarationSyntax Build() => SF.FieldDeclaration(SF.VariableDeclaration(ParseType(_type), SF.SingletonSeparatedList(SF.VariableDeclarator(_name)))) .AddModifiers(_modifiers.Build().ToArray());