本文整理汇总了C#中MemberAccessExpressionSyntax.IsWrappedInLock方法的典型用法代码示例。如果您正苦于以下问题:C# MemberAccessExpressionSyntax.IsWrappedInLock方法的具体用法?C# MemberAccessExpressionSyntax.IsWrappedInLock怎么用?C# MemberAccessExpressionSyntax.IsWrappedInLock使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MemberAccessExpressionSyntax
的用法示例。
在下文中一共展示了MemberAccessExpressionSyntax.IsWrappedInLock方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ShouldUseTap
public bool ShouldUseTap(MemberAccessExpressionSyntax memberAccessExpression)
{
if (memberAccessExpression.IsWrappedInAwaitExpression() || memberAccessExpression.IsWrappedInLock())
{
return false;
}
var identifierName = memberAccessExpression.Name as IdentifierNameSyntax;
if (identifierName?.Identifier.ValueText != nameof(Task<int>.Result))
{
return false;
}
var lambdaExpression = memberAccessExpression.FirstAncestorOrSelf<LambdaExpressionSyntax>();
if (lambdaExpression == null)
{
var methodDeclaration = memberAccessExpression.FirstAncestorOrSelf<MethodDeclarationSyntax>();
if (methodDeclaration == null || methodDeclaration.HasOutOrRefParameters())
{
return false;
}
}
var symbol = FindSymbol(memberAccessExpression.Expression);
if (symbol == null)
{
return false;
}
var taskSymbol = semanticModel.Compilation.GetTypeByMetadataName(typeof(Task).FullName);
var taskOfTSymbol = semanticModel.Compilation.GetTypeByMetadataName(typeof(Task).FullName + "`1");
return symbol.IsGenericType ?
symbol.ConstructedFrom.Equals(taskOfTSymbol) :
symbol.Equals(taskSymbol);
}