本文整理汇总了C#中INamedTypeSymbol.Is方法的典型用法代码示例。如果您正苦于以下问题:C# INamedTypeSymbol.Is方法的具体用法?C# INamedTypeSymbol.Is怎么用?C# INamedTypeSymbol.Is使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类INamedTypeSymbol
的用法示例。
在下文中一共展示了INamedTypeSymbol.Is方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CheckTypesForInvalidCast
private static void CheckTypesForInvalidCast(INamedTypeSymbol interfaceType, INamedTypeSymbol expressionType,
Dictionary<INamedTypeSymbol, HashSet<INamedTypeSymbol>> interfaceImplementerMappings, Location issueLocation,
SyntaxNodeAnalysisContext context)
{
if (interfaceType == null ||
expressionType == null ||
!interfaceType.IsInterface() ||
expressionType.Is(KnownType.System_Object))
{
return;
}
if (!HasExistingConcreteImplementation(interfaceType, interfaceImplementerMappings))
{
return;
}
if (expressionType.IsInterface() &&
!HasExistingConcreteImplementation(expressionType, interfaceImplementerMappings))
{
return;
}
if (interfaceImplementerMappings.ContainsKey(interfaceType.OriginalDefinition) &&
!interfaceImplementerMappings[interfaceType.OriginalDefinition].Any(t => t.DerivesOrImplements(expressionType.OriginalDefinition)))
{
ReportIssue(interfaceType, expressionType, issueLocation, context);
}
}
示例2: IsObjectOrType
private static bool IsObjectOrType(INamedTypeSymbol namedType)
{
return namedType.SpecialType == SpecialType.System_Object ||
namedType.Is(KnownType.System_Type);
}