本文整理汇总了C#中IndexerExpression.AddAnnotation方法的典型用法代码示例。如果您正苦于以下问题:C# IndexerExpression.AddAnnotation方法的具体用法?C# IndexerExpression.AddAnnotation怎么用?C# IndexerExpression.AddAnnotation使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IndexerExpression
的用法示例。
在下文中一共展示了IndexerExpression.AddAnnotation方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: VisitMethodDeclaration
public override void VisitMethodDeclaration (MethodDeclaration methodDeclaration)
{
base.VisitMethodDeclaration (methodDeclaration);
var hasRefs = methodDeclaration.Parameters.Any (IsRefParam);
if (!hasRefs)
return;
var sub = new Substitute ();
foreach (var p in methodDeclaration.Parameters.Where (IsRefParam).ToList ()) {
var pty = ((ComposedType)p.Type).BaseType;
var access = new IndexerExpression (new IdentifierExpression (p.Name), new PrimitiveExpression (0));
var ptd = GetTypeDef (pty);
if (ptd != null)
access.AddAnnotation (ptd);
sub.Subs [p.Name] = access;
p.ParameterModifier = ParameterModifier.None;
var c = new ComposedType {
BaseType = p.Type.Clone (),
};
c.ArraySpecifiers.Add (new ArraySpecifier (1));
p.Type = c;
}
methodDeclaration.Body.AcceptVisitor (sub);
}