當前位置: 首頁>>代碼示例>>C#>>正文


C# MethodDefinition.GetParameterModifier方法代碼示例

本文整理匯總了C#中Mono.Cecil.MethodDefinition.GetParameterModifier方法的典型用法代碼示例。如果您正苦於以下問題:C# MethodDefinition.GetParameterModifier方法的具體用法?C# MethodDefinition.GetParameterModifier怎麽用?C# MethodDefinition.GetParameterModifier使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Mono.Cecil.MethodDefinition的用法示例。


在下文中一共展示了MethodDefinition.GetParameterModifier方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。

示例1: DoGetDisplayText

        private string DoGetDisplayText(MethodDefinition method)
        {
            var text = new StringBuilder();

            // return-type
            text.Append(DoGetDisplayType(method.ReturnType.FullName));
            text.Append(':');

            // declaring-type
            string name = method.DeclaringType.FullName;
            Debug.Assert(!name.Contains(":"), name + " should not have a ':'");
            text.Append(name);
            text.Append(':');

            // name
            text.Append(DoGetDisplayName(method));
            text.Append(':');

            // generic-args
            if (method.HasGenericParameters && !DoCanDeduceGenerics(method))
                text.Append(DoGetDisplayGargs(method.GenericParameters));
            else if (method.IsConstructor && method.DeclaringType.HasGenericParameters)
                text.Append(DoGetDisplayGargs(method.DeclaringType.GenericParameters));
            text.Append(':');

            // arg-types
            if (method.HasParameters)
            {
                for (int i = 0; i < method.Parameters.Count; ++i)
                {
                    text.Append(method.GetParameterModifier(i));

                    ParameterDefinition p = method.Parameters[i];
                    string typeName = p.ParameterType.FullName;
                    if (typeName.EndsWith("&"))
                        typeName = typeName.Remove(typeName.Length - 1);
                    text.Append(DoGetDisplayType(typeName));

                    if (i + 1 < method.Parameters.Count)
                        text.Append(";");
                }
            }
            text.Append(':');

            // arg-names
            if (method.HasParameters)
            {
                for (int i = 0; i < method.Parameters.Count; ++i)
                {
                    ParameterDefinition p = method.Parameters[i];

                    Debug.Assert(!p.Name.Contains(":"), p.Name + " should not have a ':'");
                    Debug.Assert(!p.Name.Contains(";"), p.Name + " should not have a ';'");
                    text.Append(p.Name);

                    if (i + 1 < method.Parameters.Count)
                        text.Append(";");
                }
            }

            return text.ToString();
        }
開發者ID:andyhebear,項目名稱:Continuum,代碼行數:62,代碼來源:ParseAssembly.cs

示例2: DoGetParams

        private void DoGetParams(StringBuilder builder, MethodDefinition method)
        {
            if (m_addSpace)
                builder.Append(" (");
            else
                builder.Append("(");
            for (int i = 0; i < method.Parameters.Count; ++i)
            {
                builder.Append(method.GetParameterModifier(i));

                ParameterDefinition param = method.Parameters[i];
                string tname = DoGetQualifiedTypeName(param.ParameterType, true);
                if (tname.EndsWith("&"))
                    tname = tname.Remove(tname.Length - 1);

                builder.Append(tname);
                builder.Append(" ");
                builder.Append(param.Name);

                if (i + 1 < method.Parameters.Count)
                    builder.Append(", ");
            }
            builder.Append(");");
        }
開發者ID:andyhebear,項目名稱:Continuum,代碼行數:24,代碼來源:ShortForm.cs


注:本文中的Mono.Cecil.MethodDefinition.GetParameterModifier方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。