本文整理汇总了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();
}
示例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(");");
}