• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# Syntax.PropertyDeclarationSyntax类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中Microsoft.CodeAnalysis.CSharp.Syntax.PropertyDeclarationSyntax的典型用法代码示例。如果您正苦于以下问题:C# PropertyDeclarationSyntax类的具体用法?C# PropertyDeclarationSyntax怎么用?C# PropertyDeclarationSyntax使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



PropertyDeclarationSyntax类属于Microsoft.CodeAnalysis.CSharp.Syntax命名空间,在下文中一共展示了PropertyDeclarationSyntax类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: VisitPropertyDeclaration

 public override SyntaxNode VisitPropertyDeclaration(PropertyDeclarationSyntax node)
 {
     return base.VisitPropertyDeclaration(
         node.WithType(UpdateType(node.Type))
             .WithModifiers(SyntaxFactory.TokenList())
             .WithAccessorList(UpdateAccessorList(node.AccessorList, node.Type)));
 }
开发者ID:herskinduk,项目名称:AutoWrapping,代码行数:7,代码来源:RoslynTypeRewriter.cs


示例2: VisitPropertyDeclaration

 public override void VisitPropertyDeclaration(PropertyDeclarationSyntax node)
 {
     if (RequiresNullChecks(node.AttributeLists))
     {
         AddMessage(node, $"property {node.Identifier} needs null checks");
     }
 }
开发者ID:jimdeselms,项目名称:codeformatter,代码行数:7,代码来源:NullCheckerValidation.cs


示例3: IsPropertyCandidate

        private static bool IsPropertyCandidate(PropertyDeclarationSyntax propertySyntax, SemanticModel semanticModel)
        {
            if (HasDocumentationComment(propertySyntax))
            {
                return false;
            }

            var propertySymbol = semanticModel.GetDeclaredSymbol(propertySyntax);

            if (propertySymbol == null ||
                !propertySymbol.IsOverride ||
                propertySymbol.IsSealed ||
                propertySymbol.OverriddenProperty == null)
            {
                return false;
            }

            if (propertySymbol.GetMethod != null && propertySymbol.OverriddenProperty.GetMethod == null)
            {
                return false;
            }

            if (propertySymbol.SetMethod != null && propertySymbol.OverriddenProperty.SetMethod == null)
            {
                return false;
            }

            return CheckGetAccessorIfAny(propertySyntax, propertySymbol, semanticModel) &&
                CheckSetAccessorIfAny(propertySyntax, propertySymbol, semanticModel);
        }
开发者ID:dbolkensteyn,项目名称:sonarlint-vs,代码行数:30,代码来源:MemberOverrideCallsBaseMember.cs


示例4: VisitPropertyDeclaration

        public override SyntaxNode VisitPropertyDeclaration(PropertyDeclarationSyntax node)
        {
            _cancellationToken.ThrowIfCancellationRequested();

            var propertySymbol = _semanticModel.GetDeclaredSymbol(node, _cancellationToken);

            var propertyAssumptions = _propertyAssumptions.Where(pa => pa.Property == propertySymbol).ToList();
            if (propertyAssumptions.Count == 0)
            {
                return base.VisitPropertyDeclaration(node);
            }

            var newProperty = node;

            foreach (var propertyAssumption in propertyAssumptions)
            {
                foreach (string attributeToDelete in propertyAssumption.GetAttributesToDelete(_objectTheoremResult))
                {
                    newProperty = RemoveAttribute(newProperty, attributeToDelete);
                }

                foreach (string attributeToAdd in propertyAssumption.GetAttributesToAdd(_objectTheoremResult))
                {
                    newProperty = EnsureAttribute(newProperty, attributeToAdd);
                }

                foreach (AttributeSyntax attributeToAdd in propertyAssumption.GetAttributeSyntaxexToAdd(_objectTheoremResult))
                {
                    newProperty = EnsureAttribute(newProperty, attributeToAdd);
                }
            }

            return base.VisitPropertyDeclaration(newProperty);
        }
开发者ID:RicardoNiepel,项目名称:Z3.ObjectTheorem,代码行数:34,代码来源:AttributeRewriter.cs


示例5: HandleProperty

        private Diagnostic HandleProperty(PropertyDeclarationSyntax propertyDeclaration)
        {
            if (propertyDeclaration.ExpressionBody != null)
            {
                return null;
            }

            if (propertyDeclaration.DescendantNodesAndTokensAndSelf().Any(x => x.GetLeadingTrivia().Concat(x.GetTrailingTrivia()).Any(y => !y.IsWhitespaceTrivia())))
            {
                return null;
            }

            var getter = propertyDeclaration.AccessorList.Accessors.FirstOrDefault(x => x.Keyword.ValueText == "get");
            if (getter == null)
            {
                return null;
            }

            if (getter.AttributeLists.Any(x => x.Attributes.Any()))
            {
                return null;
            }

            if (getter.Body?.Statements.Count != 1)
            {
                return null;
            }

            var statement = getter.Body.Statements.First();
            return Diagnostic.Create(Rule, statement.GetLocation(), "Property", propertyDeclaration.Identifier);
        }
开发者ID:nemec,项目名称:VSDiagnostics,代码行数:31,代码来源:SimplifyExpressionBodiedMemberAnalyzer.cs


示例6: MakeAutoPropertyAsync

 public async static Task<Solution> MakeAutoPropertyAsync(Document document, SyntaxNode root, PropertyDeclarationSyntax property, CancellationToken cancellationToken)
 {
     var semanticModel = await document.GetSemanticModelAsync(cancellationToken);
     var getterReturn = (ReturnStatementSyntax)property.AccessorList.Accessors.First(a => a.Keyword.ValueText == "get").Body.Statements.First();
     var returnIdentifier = (IdentifierNameSyntax)(getterReturn.Expression is MemberAccessExpressionSyntax ? ((MemberAccessExpressionSyntax)getterReturn.Expression).Name : getterReturn.Expression);
     var returnIdentifierSymbol = semanticModel.GetSymbolInfo(returnIdentifier).Symbol;
     var variableDeclarator = (VariableDeclaratorSyntax)returnIdentifierSymbol.DeclaringSyntaxReferences.First().GetSyntax();
     var fieldDeclaration = variableDeclarator.FirstAncestorOfType<FieldDeclarationSyntax>();
     root = root.TrackNodes(returnIdentifier, fieldDeclaration, property);
     document = document.WithSyntaxRoot(root);
     root = await document.GetSyntaxRootAsync(cancellationToken);
     semanticModel = await document.GetSemanticModelAsync(cancellationToken);
     returnIdentifier = root.GetCurrentNode(returnIdentifier);
     returnIdentifierSymbol = semanticModel.GetSymbolInfo(returnIdentifier).Symbol;
     var newProperty = GetSimpleProperty(property, variableDeclarator)
         .WithTriviaFrom(property)
         .WithAdditionalAnnotations(Formatter.Annotation);
     var newSolution = await Renamer.RenameSymbolAsync(document.Project.Solution, returnIdentifierSymbol, property.Identifier.ValueText, document.Project.Solution.Workspace.Options, cancellationToken);
     document = newSolution.GetDocument(document.Id);
     root = await document.GetSyntaxRootAsync(cancellationToken).ConfigureAwait(false);
     root = root.InsertNodesAfter(root.GetCurrentNode(property), new[] { newProperty });
     var multipleVariableDeclaration = fieldDeclaration.Declaration.Variables.Count > 1;
     if (multipleVariableDeclaration)
     {
         var newfieldDeclaration = fieldDeclaration.WithDeclaration(fieldDeclaration.Declaration.RemoveNode(variableDeclarator, SyntaxRemoveOptions.KeepNoTrivia));
         root = root.RemoveNode(root.GetCurrentNode<SyntaxNode>(property), SyntaxRemoveOptions.KeepNoTrivia);
         root = root.ReplaceNode(root.GetCurrentNode(fieldDeclaration), newfieldDeclaration);
     }
     else
     {
         root = root.RemoveNodes(root.GetCurrentNodes<SyntaxNode>(new SyntaxNode[] { fieldDeclaration, property }), SyntaxRemoveOptions.KeepNoTrivia);
     }
     document = document.WithSyntaxRoot(root);
     return document.Project.Solution;
 }
开发者ID:haroldhues,项目名称:code-cracker,代码行数:35,代码来源:SwitchToAutoPropCodeFixProvider.cs


示例7: Property

 public Property(SemanticModel model, PropertyDeclarationSyntax syntax, AttributeSyntax attribute = null, AttributeSyntax classAttribute = null)
 {
     this.model = model;
     Syntax = syntax;
     propertyAttribute = attribute;
     ClassAttribute = classAttribute;
 }
开发者ID:ciniml,项目名称:NotifyPropertyChangedGenerator,代码行数:7,代码来源:Property.cs


示例8: MakeAutoPropertyAsync

 public async static Task<Solution> MakeAutoPropertyAsync(Document document, SyntaxNode root, PropertyDeclarationSyntax property, CancellationToken cancellationToken)
 {
     var semanticModel = await document.GetSemanticModelAsync(cancellationToken);
     var getterReturn = (ReturnStatementSyntax)property.AccessorList.Accessors.First(a => a.Keyword.ValueText == "get").Body.Statements.First();
     var returnIdentifier = (IdentifierNameSyntax)(getterReturn.Expression is MemberAccessExpressionSyntax
         ? ((MemberAccessExpressionSyntax)getterReturn.Expression).Name
         : getterReturn.Expression);
     var fieldSymbol = (IFieldSymbol)semanticModel.GetSymbolInfo(returnIdentifier).Symbol;
     var variableDeclarator = (VariableDeclaratorSyntax)fieldSymbol.DeclaringSyntaxReferences.First().GetSyntax();
     var fieldDeclaration = variableDeclarator.FirstAncestorOfType<FieldDeclarationSyntax>();
     var propertySymbol = semanticModel.GetDeclaredSymbol(property);
     var newRoot = root.TrackNodes(returnIdentifier, fieldDeclaration, property, variableDeclarator);
     //cycle
     var newDocument = document.WithSyntaxRoot(newRoot);
     newRoot = await newDocument.GetSyntaxRootAsync(cancellationToken);
     var newProperty = CreateAutoProperty(property, variableDeclarator, fieldSymbol, propertySymbol);
     Solution newSolution;
     if (IsExplicityImplementation(propertySymbol))
     {
         semanticModel = await newDocument.GetSemanticModelAsync(cancellationToken);
         returnIdentifier = newRoot.GetCurrentNode(returnIdentifier);
         fieldSymbol = (IFieldSymbol)semanticModel.GetSymbolInfo(returnIdentifier).Symbol;
         newSolution = await RenameSymbolAndKeepExplicitPropertiesBoundAsync(newDocument.Project.Solution, property.Identifier.ValueText, fieldSymbol, propertySymbol, cancellationToken);
         newDocument = newSolution.GetDocument(newDocument.Id);
         newRoot = await newDocument.GetSyntaxRootAsync(cancellationToken).ConfigureAwait(false);
         newRoot = newRoot.ReplaceNode(newRoot.GetCurrentNode(property), newProperty);
         newSolution = newSolution.WithDocumentSyntaxRoot(newDocument.Id, newRoot);
     }
     else
     {
         var currentProperty = newRoot.GetCurrentNode(property);
         var type = (TypeDeclarationSyntax)currentProperty.Parent;
         var propertyIndex = type.Members.IndexOf(currentProperty);
         //Remove the property: this is needed otherwise the rename that happens bellow will not be able to
         //correctly redirect the references to the field, as the property will conflict with the name.
         //The conflict is specially troublesome for circular references, such as the one that caused the bug #702.
         newRoot = newRoot.ReplaceNode(type, type.RemoveNode(currentProperty, SyntaxRemoveOptions.KeepNoTrivia));
         //cycle
         newDocument = newDocument.WithSyntaxRoot(newRoot);
         newRoot = await newDocument.GetSyntaxRootAsync(cancellationToken);
         semanticModel = await newDocument.GetSemanticModelAsync(cancellationToken);
         fieldSymbol = (IFieldSymbol)semanticModel.GetDeclaredSymbol(newRoot.GetCurrentNode(variableDeclarator));
         //rename the field:
         newSolution = await Renamer.RenameSymbolAsync(newDocument.Project.Solution, fieldSymbol, property.Identifier.ValueText, newDocument.Project.Solution.Workspace.Options, cancellationToken).ConfigureAwait(false);
         //cycle
         newDocument = newSolution.GetDocument(newDocument.Id);
         newRoot = await newDocument.GetSyntaxRootAsync(cancellationToken).ConfigureAwait(false);
         //add the property back:
         var currentType = (TypeDeclarationSyntax)newRoot.GetCurrentNode(fieldDeclaration).Parent;
         var newMembers = currentType.Members.Insert(propertyIndex, newProperty);
         var newType = WithMembers(currentType, newMembers);
         newRoot = newRoot.ReplaceNode(currentType, newType);
         newSolution = newSolution.WithDocumentSyntaxRoot(newDocument.Id, newRoot);
     }
     newDocument = newSolution.GetDocument(newDocument.Id);
     newRoot = await newDocument.GetSyntaxRootAsync(cancellationToken).ConfigureAwait(false);
     newRoot = RemoveField(newRoot, variableDeclarator, fieldDeclaration);
     return newSolution.WithDocumentSyntaxRoot(newDocument.Id, newRoot);
 }
开发者ID:julianosaless,项目名称:code-cracker,代码行数:59,代码来源:SwitchToAutoPropCodeFixProvider.cs


示例9: VisitPropertyDeclaration

 public override SyntaxNode VisitPropertyDeclaration(PropertyDeclarationSyntax propertySyntax)
 {
     var leadingTrivia = propertySyntax.Identifier.LeadingTrivia;
     var trailingTriva = propertySyntax.Identifier.TrailingTrivia;
     return propertySyntax.ReplaceToken(propertySyntax.Identifier,
         SyntaxFactory.Identifier(leadingTrivia,
         ToCamelCase(propertySyntax.Identifier.ValueText), trailingTriva) );
 }
开发者ID:nhabuiduc,项目名称:TypescriptSyntaxPaste,代码行数:8,代码来源:MakeMemberCamelCase.cs


示例10: IsPropertyBoolean

        /// <summary>
        /// Return true if the supplied property is a boolean property.
        /// </summary>
        /// <param name="propertyNode">the property node.</param>
        /// <returns>true if the property is a boolean property.</returns>
        public bool IsPropertyBoolean(PropertyDeclarationSyntax propertyNode)
        {
            if (propertyNode.Type.Kind() != SyntaxKind.PredefinedType)
                return false;

            var predefined = propertyNode.Type as PredefinedTypeSyntax;
            return predefined?.Keyword.Kind() == SyntaxKind.BoolKeyword;
        }
开发者ID:jimmymain,项目名称:Documentation.Analyzers,代码行数:13,代码来源:AccessLevelService.cs


示例11: IsAutoImplementedProperty

        private bool IsAutoImplementedProperty(PropertyDeclarationSyntax propertyDecl)
        {
            SyntaxList<AccessorDeclarationSyntax> accessors = propertyDecl.AccessorList.Accessors;

            AccessorDeclarationSyntax getter = accessors.FirstOrDefault(ad => ad.Kind() == SyntaxKind.GetAccessorDeclaration);
            AccessorDeclarationSyntax setter = accessors.FirstOrDefault(ad => ad.Kind() == SyntaxKind.SetAccessorDeclaration);
            if (getter == null || setter == null) return false;
            return getter.Body == null && setter.Body == null;
        }
开发者ID:CNinnovation,项目名称:TechConference2016,代码行数:9,代码来源:CodeRefactoringProvider.cs


示例12: ChangeToFullPropertyAsync

        private async Task<Document> ChangeToFullPropertyAsync(Document document, PropertyDeclarationSyntax propertyDecl, CancellationToken cancellationToken)
        {

            SemanticModel model = await document.GetSemanticModelAsync(cancellationToken);
            var root = await document.GetSyntaxRootAsync(cancellationToken) as CompilationUnitSyntax;

            document = document.WithSyntaxRoot(CodeGeneration.ImplementFullProperty(root, model, propertyDecl, document.Project.Solution.Workspace));
            return document;
        }
开发者ID:CNinnovation,项目名称:TechConference2016,代码行数:9,代码来源:CodeRefactoringProvider.cs


示例13: VisitPropertyDeclaration

        public override void VisitPropertyDeclaration(PropertyDeclarationSyntax node)
        {
            // TODO: Parse properties correctly and load their nodes.
            PropertyWalker walker = this.CreateSyntaxWalker<PropertyWalker>(node);
            walker.Visit(node);

            this.Variables.Add(new Property() { Name = node.Identifier.ToString(), Type = node.Type.ToString() });

            base.VisitPropertyDeclaration(node);
        }
开发者ID:chemix-lunacy,项目名称:Skyling,代码行数:10,代码来源:VariableWalker.cs


示例14: MakeInterfaceProperty

        private static PropertyDeclarationSyntax MakeInterfaceProperty(PropertyDeclarationSyntax propertySyntax)
        {
            var accessors = propertySyntax.AccessorList.Accessors.Select(f => MakeInterfaceAccessor(f));
            var syntaxList = new SyntaxList<AccessorDeclarationSyntax>();
            syntaxList = syntaxList.AddRange(accessors);

            var accessorList = propertySyntax.AccessorList.WithAccessors(syntaxList);

            return propertySyntax.WithModifiers(new SyntaxTokenList()).WithAccessorList(accessorList);
        }
开发者ID:nhabuiduc,项目名称:TypescriptSyntaxPaste,代码行数:10,代码来源:ClassToInterfaceReplacement.cs


示例15: IsGetOnlyAutoProperty

        public static bool IsGetOnlyAutoProperty(this IPropertySymbol property, PropertyDeclarationSyntax propertyDeclaration)
        {
            Contract.Requires(property != null);
            Contract.Requires(propertyDeclaration != null);

            var getter = propertyDeclaration.Getter();
            if (getter == null) return false;

            return property.IsReadOnly && getter.SemicolonToken.IsKind(SyntaxKind.SemicolonToken);
        }
开发者ID:SergeyTeplyakov,项目名称:ErrorProne.NET,代码行数:10,代码来源:PropertyDeclarationExtensions.cs


示例16: VisitPropertyDeclaration

        public override SyntaxNode VisitPropertyDeclaration(PropertyDeclarationSyntax propertyDeclaration)
        {
            if (propertyDeclaration == property)
            {
                // Add an annotation to format the new property.
                return ConvertToAutoProperty(propertyDeclaration).WithAdditionalAnnotations(Formatter.Annotation);
            }

            return base.VisitPropertyDeclaration(propertyDeclaration);
        }
开发者ID:SoumikMukherjeeDOTNET,项目名称:roslyn,代码行数:10,代码来源:PropertyRewriter.cs


示例17: GetTrackableProperties

 public static PropertyDeclarationSyntax[] GetTrackableProperties(PropertyDeclarationSyntax[] properties)
 {
     // NOTE: it's naive approach because we don't know semantic type information here.
     return properties.Where(p =>
     {
         var parts = p.Type.ToString().Split('.');
         var typeName = parts[parts.Length - 1];
         return typeName.StartsWith("Trackable");
     }).ToArray();
 }
开发者ID:cupsster,项目名称:TrackableData,代码行数:10,代码来源:Utility.cs


示例18: AddSequencePoint

        internal static BoundStatement AddSequencePoint(PropertyDeclarationSyntax declarationSyntax, BoundStatement rewrittenStatement)
        {
            Debug.Assert(declarationSyntax.Initializer != null);
            int start = declarationSyntax.Initializer.Value.SpanStart;
            int end = declarationSyntax.Initializer.Span.End;
            TextSpan part = TextSpan.FromBounds(start, end);

            var result = BoundSequencePoint.Create(declarationSyntax, part, rewrittenStatement);
            result.WasCompilerGenerated = rewrittenStatement.WasCompilerGenerated;
            return result;
        }
开发者ID:ehsansajjad465,项目名称:roslyn,代码行数:11,代码来源:LocalRewriter_SequencePoints.cs


示例19: GetDefaultValue

        private static string GetDefaultValue(PropertyDeclarationSyntax property)
        {
            var childSyntaxList = property.Initializer.Value;

            if (property.Initializer.Value is LiteralExpressionSyntax)
            {
                var literalExpression = property.Initializer.Value as LiteralExpressionSyntax;
                return literalExpression.Token.ValueText;
            }
            return childSyntaxList.DescendantNodesAndSelf().OfType<ObjectCreationExpressionSyntax>().First().ToFullString();
        }
开发者ID:laurentkempe,项目名称:Furnace,代码行数:11,代码来源:InitializerTests.cs


示例20: TryGetAccessors

        /// <summary>
        /// Retrieves the get and set accessor declarations of the specified property.
        /// Returns true if both get and set accessors exist; otherwise false.
        /// </summary>
        internal static bool TryGetAccessors(
            PropertyDeclarationSyntax property,
            out AccessorDeclarationSyntax getter,
            out AccessorDeclarationSyntax setter)
        {
            var accessors = property.AccessorList.Accessors;
            getter = accessors.FirstOrDefault(ad => ad.Kind() == SyntaxKind.GetAccessorDeclaration);
            setter = accessors.FirstOrDefault(ad => ad.Kind() == SyntaxKind.SetAccessorDeclaration);

            return accessors.Count == 2 && getter != null && setter != null;
        }
开发者ID:Rickinio,项目名称:roslyn,代码行数:15,代码来源:ExpansionChecker.cs



注:本文中的Microsoft.CodeAnalysis.CSharp.Syntax.PropertyDeclarationSyntax类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# Syntax.ReturnStatementSyntax类代码示例发布时间:2022-05-26
下一篇:
C# Syntax.ParameterSyntax类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap