本文整理汇总了C#中dnlib.DotNet.TypeSig.ToSZArraySig方法的典型用法代码示例。如果您正苦于以下问题:C# TypeSig.ToSZArraySig方法的具体用法?C# TypeSig.ToSZArraySig怎么用?C# TypeSig.ToSZArraySig使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类dnlib.DotNet.TypeSig
的用法示例。
在下文中一共展示了TypeSig.ToSZArraySig方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ReferenceType
private static TypeSig ReferenceType(TypeSig type, ModuleDef module)
{
if (type == null)
return null;
if (type.IsSZArray)
{
var szar = type.ToSZArraySig();
var eleType = ReferenceType(szar.Next, module);
if (eleType == null)
return null;
return new SZArraySig(eleType);
}
if (type.IsArray)
{
var ar = type.ToArraySig();
var eleType = ReferenceType(ar.Next, module);
if (eleType == null)
return null;
return new ArraySig(eleType, ar.Rank, ar.Sizes, ar.LowerBounds);
}
if (type.IsGenericInstanceType)
{
var g = type.ToGenericInstSig();
var gtype = FindType(g.GenericType.FullName, module);
ClassOrValueTypeSig ngt;
if (gtype == null)
ngt = g.GenericType;
else
ngt = gtype.TryGetClassOrValueTypeSig();
TypeSig[] genericArgs = new TypeSig[g.GenericArguments.Count];
for (int i = 0; i < g.GenericArguments.Count; ++i)
{
var subArg = ReferenceType(g.GenericArguments[i], module);
if (subArg != null)
genericArgs[i] = subArg;
else
genericArgs[i] = g.GenericArguments[i];
}
return new GenericInstSig(ngt, genericArgs);
}
var targetType = FindType(type.FullName, module);
if (targetType == null)
return null;
return targetType.ToTypeSig();
}