当前位置: 首页>>代码示例>>C#>>正文


C# MethodDeclaration.GetParent方法代码示例

本文整理汇总了C#中MethodDeclaration.GetParent方法的典型用法代码示例。如果您正苦于以下问题:C# MethodDeclaration.GetParent方法的具体用法?C# MethodDeclaration.GetParent怎么用?C# MethodDeclaration.GetParent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在MethodDeclaration的用法示例。


在下文中一共展示了MethodDeclaration.GetParent方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: VisitMethodDeclaration

        public override void VisitMethodDeclaration(MethodDeclaration methodDeclaration)
        {
            var typeDeclaration = methodDeclaration.GetParent<TypeDeclaration>();
            var writer = this.m_TypeWriters[typeDeclaration];

            var modifiers = this.GetJavaModifiersAsList(methodDeclaration.Modifiers);
            var javaModifiers = this.ConvertModifierListToJavaModifiers(modifiers);
            writer.WriteLine(".method " + javaModifiers + " " +
                             JavaSignature.CreateMethodSignature(methodDeclaration, this.m_Resolver.TypeResolveContext, false));

            methodDeclaration.AcceptVisitor(new JavaMethodVisitor(this.m_Resolver, writer));

            writer.WriteLine(".end method");
        }
开发者ID:hach-que,项目名称:cscjvm,代码行数:14,代码来源:JavaTypeVisitor.cs

示例2: CreateMethodSignature

 public static string CreateMethodSignature(MethodDeclaration method, ITypeResolveContext resolver, bool fullyQualified = true)
 {
     var builder = new StringBuilder();
     if (fullyQualified)
     {
         builder.Append(CreateTypeSignature(method.GetParent<TypeDeclaration>()));
         builder.Append("/");
     }
     builder.Append(method.Name);
     builder.Append("(");
     foreach (var parameter in method.Parameters)
     {
         builder.Append(CreateTypeSignature(parameter.Type.ToTypeReference().Resolve(resolver)));
     }
     builder.Append(")");
     builder.Append(CreateTypeSignature(method.ReturnType.ToTypeReference().Resolve(resolver)));
     return builder.ToString();
 }
开发者ID:hach-que,项目名称:cscjvm,代码行数:18,代码来源:JavaSignature.cs

示例3: VisitMethodDeclaration

			public override void VisitMethodDeclaration (MethodDeclaration methodDeclaration)
			{
				base.VisitMethodDeclaration (methodDeclaration);

				//
				// Try to force the method into a form we can handle
				//
				var m = methodDeclaration;

				var gotos = m.Body.Descendants.OfType<GotoStatement> ().ToList ();
				if (gotos.Count == 0)
					return;

				if (HasBadLabels (m)) {
					foreach (var ts in transforms) {
						m = (MethodDeclaration)methodDeclaration.Clone ();

						m.AcceptVisitor (new LabelLoops ());
						m.AcceptVisitor (new SwitchSectionBlocksToStatements ());
						foreach (var t in ts) {
							m.AcceptVisitor (t);
							m.AcceptVisitor (new RemoveRedundantGotos ());
							m.AcceptVisitor (new RemoveUnreachableStatements ());
						}
						m.AcceptVisitor (new RemoveLabelsWithoutGotos ());

						if (!HasBadLabels (m)) {
							break;
						}
					}

					if (HasBadLabels (m)) {
						App.Warning ("! GOTO labels at different levels in {0}.{1}(). This is not supported.", 
							methodDeclaration.GetParent<TypeDeclaration> ().Name, 
							methodDeclaration.Name);
						return;
					} else {
						methodDeclaration.ReplaceWith (m);
					}
				}

				//
				// Handle it
				//
				m.AcceptVisitor (new CreateGotoLoop ());
				m.AcceptVisitor (new RewriteGotos ());
			}
开发者ID:RReverser,项目名称:Netjs,代码行数:47,代码来源:CsToTs.cs


注:本文中的MethodDeclaration.GetParent方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。