本文整理汇总了C#中SemanticModel.GetEnclosingNamedTypeOrAssembly方法的典型用法代码示例。如果您正苦于以下问题:C# SemanticModel.GetEnclosingNamedTypeOrAssembly方法的具体用法?C# SemanticModel.GetEnclosingNamedTypeOrAssembly怎么用?C# SemanticModel.GetEnclosingNamedTypeOrAssembly使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SemanticModel
的用法示例。
在下文中一共展示了SemanticModel.GetEnclosingNamedTypeOrAssembly方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: IsExpressionContext
//.........这里部分代码省略.........
if (token.IsKind(SyntaxKind.EqualsGreaterThanToken))
{
return true;
}
// new List<int> { |
// new List<int> { expr, |
if (token.IsKind(SyntaxKind.OpenBraceToken) ||
token.IsKind(SyntaxKind.CommaToken))
{
if (token.Parent is InitializerExpressionSyntax)
{
// The compiler treats the ambiguous case as an object initializer, so we'll say
// expressions are legal here
if (token.Parent.IsKind(SyntaxKind.ObjectInitializerExpression) && token.IsKind(SyntaxKind.OpenBraceToken))
{
// In this position { a$$ =, the user is trying to type an object initializer.
if (!token.IntersectsWith(position) && token.GetNextToken().GetNextToken().IsKind(SyntaxKind.EqualsToken))
{
return false;
}
return true;
}
// Perform a semantic check to determine whether or not the type being created
// can support a collection initializer. If not, this must be an object initializer
// and can't be an expression context.
if (semanticModelOpt != null &&
token.Parent.IsParentKind(SyntaxKind.ObjectCreationExpression))
{
var objectCreation = (ObjectCreationExpressionSyntax)token.Parent.Parent;
var type = semanticModelOpt.GetSymbolInfo(objectCreation.Type, cancellationToken).Symbol as ITypeSymbol;
var containingSymbol = semanticModelOpt.GetEnclosingNamedTypeOrAssembly(position, cancellationToken);
if (type != null && !type.CanSupportCollectionInitializer(containingSymbol))
{
return false;
}
}
return true;
}
}
// for (; |
// for (; ; |
if (token.IsKind(SyntaxKind.SemicolonToken) &&
token.Parent.IsKind(SyntaxKind.ForStatement))
{
var forStatement = (ForStatementSyntax)token.Parent;
if (token == forStatement.FirstSemicolonToken ||
token == forStatement.SecondSemicolonToken)
{
return true;
}
}
// for ( |
if (token.IsKind(SyntaxKind.OpenParenToken) &&
token.Parent.IsKind(SyntaxKind.ForStatement))
{
var forStatement = (ForStatementSyntax)token.Parent;
if (token == forStatement.OpenParenToken)
{
return true;
}