本文整理汇总了C#中ICSharpCode.NRefactory.CSharp.HasAnnotationOf方法的典型用法代码示例。如果您正苦于以下问题:C# ICSharpCode.NRefactory.CSharp.HasAnnotationOf方法的具体用法?C# ICSharpCode.NRefactory.CSharp.HasAnnotationOf怎么用?C# ICSharpCode.NRefactory.CSharp.HasAnnotationOf使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ICSharpCode.NRefactory.CSharp
的用法示例。
在下文中一共展示了ICSharpCode.NRefactory.CSharp.HasAnnotationOf方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Index
protected internal Index(NRefactory.IndexerExpression indexerExpression, IScope scope, INRefcatoryExpressionVisitor visitor)
: base(scope, visitor) {
bool isAssignment = false;
PropertyReference propertyReference = null;
_indexerExpression = indexerExpression;
isAssignment = IsAssignment();
Target = indexerExpression.Target.AcceptVisitor(Visitor, ParentScope);
TryGetArguments();
if (indexerExpression.HasAnnotationOf<PropertyReference>(out propertyReference)) {
var propertyInfo = Target.Type.GetProperty(propertyReference.Name);
InternalType = propertyInfo.PropertyType;
_indexer = propertyInfo;
}
else {
_isArrayIndex = true;
var targetType = Target.Type;
if (targetType.HasElementType) {
targetType = Target.Type.GetElementType();
}
InternalType = targetType;
_methodCall = _isAssignment ? Expression.ArrayAccess : (Func<Expression, IEnumerable<Expression>, Expression>)Expression.ArrayAccess;
}
}