本文整理汇总了C#中IFieldSymbol.Equals方法的典型用法代码示例。如果您正苦于以下问题:C# IFieldSymbol.Equals方法的具体用法?C# IFieldSymbol.Equals怎么用?C# IFieldSymbol.Equals使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IFieldSymbol
的用法示例。
在下文中一共展示了IFieldSymbol.Equals方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetNamedField
private IFieldSymbol GetNamedField(
INamedTypeSymbol containingType, IFieldSymbol unnamedField, CancellationToken cancellationToken)
{
foreach (var member in containingType.GetMembers())
{
cancellationToken.ThrowIfCancellationRequested();
if (member.Kind == SymbolKind.Field)
{
var fieldSymbol = (IFieldSymbol)member;
if (unnamedField.Equals(fieldSymbol.CorrespondingTupleField) &&
!fieldSymbol.Name.Equals(unnamedField.Name))
{
return fieldSymbol;
}
}
}
return null;
}
示例2: CallsDisposeOnField
private static bool CallsDisposeOnField(IFieldSymbol fieldSymbol, MethodDeclarationSyntax method, SemanticModel semanticModel)
{
var body = (SyntaxNode)method.Body ?? method.ExpressionBody;
var hasDisposeCall = body.DescendantNodes().OfKind<InvocationExpressionSyntax>(SyntaxKind.InvocationExpression)
.Any(invocation =>
{
if (!invocation?.Expression?.IsKind(SyntaxKind.SimpleMemberAccessExpression) ?? true) return false;
var memberAccess = (MemberAccessExpressionSyntax)invocation.Expression;
if (memberAccess?.Name == null) return false;
if (memberAccess.Name.Identifier.ToString() != "Dispose" || memberAccess.Name.Arity != 0) return false;
if (!memberAccess.Expression.IsKind(SyntaxKind.IdentifierName)) return false;
return fieldSymbol.Equals(semanticModel.GetSymbolInfo(memberAccess.Expression).Symbol);
});
return hasDisposeCall;
}
示例3: CallsDisposeOnField
private static bool CallsDisposeOnField(IFieldSymbol fieldSymbol, MethodDeclarationSyntax disposeMethod, SemanticModel semanticModel)
{
var hasDisposeCall = disposeMethod.Body.Statements.OfType<ExpressionStatementSyntax>()
.Any(exp =>
{
var invocation = exp.Expression as InvocationExpressionSyntax;
if (!invocation?.Expression?.IsKind(SyntaxKind.SimpleMemberAccessExpression) ?? true) return false;
var memberAccess = (MemberAccessExpressionSyntax)invocation.Expression;
if (memberAccess.Name.Identifier.ToString() != "Dispose" || memberAccess.Name.Arity != 0) return false;
var memberAccessIdentificer = memberAccess.Expression as IdentifierNameSyntax;
if (memberAccessIdentificer == null) return false;
return fieldSymbol.Equals(semanticModel.GetSymbolInfo(memberAccessIdentificer).Symbol);
});
return hasDisposeCall;
}