示例#1
0
        protected bool TryConvertToExpressionBodyForBaseProperty(
            BasePropertyDeclarationSyntax declaration,
            ExpressionBodyPreference conversionPreference,
            [NotNullWhen(true)] out ArrowExpressionClauseSyntax?arrowExpression,
            out SyntaxToken semicolonToken)
        {
            if (TryConvertToExpressionBodyWorker(declaration, conversionPreference, out arrowExpression, out semicolonToken))
            {
                return(true);
            }

            var getAccessor = GetSingleGetAccessor(declaration.AccessorList);

            if (getAccessor?.ExpressionBody != null &&
                BlockSyntaxExtensions.MatchesPreference(getAccessor.ExpressionBody.Expression, conversionPreference))
            {
                arrowExpression = SyntaxFactory.ArrowExpressionClause(getAccessor.ExpressionBody.Expression);
                semicolonToken  = getAccessor.SemicolonToken;
                return(true);
            }

            return(false);
        }
示例#2
0
        protected override bool TryConvertToExpressionBody(
            PropertyDeclarationSyntax declaration, ParseOptions options,
            ExpressionBodyPreference conversionPreference,
            out ArrowExpressionClauseSyntax arrowExpression,
            out SyntaxToken semicolonToken)
        {
            if (base.TryConvertToExpressionBody(declaration, options, conversionPreference, out arrowExpression, out semicolonToken))
            {
                return(true);
            }

            var getAccessor = GetSingleGetAccessor(declaration.AccessorList);

            if (getAccessor?.ExpressionBody != null &&
                BlockSyntaxExtensions.MatchesPreference(getAccessor.ExpressionBody.Expression, conversionPreference))
            {
                arrowExpression = SyntaxFactory.ArrowExpressionClause(getAccessor.ExpressionBody.Expression);
                semicolonToken  = getAccessor.SemicolonToken;
                return(true);
            }

            return(false);
        }