反思:如何获取by-ref类型的基础类型

时间:2010-06-13 19:41:49

标签: .net reflection byref

我很惊讶地发现“ref”和“out”参数没有用特殊属性标记,尽管存在ParameterInfo.IsOut,ParameterInfo.IsIn(据我所知,两者都是假的) ,ParameterAttributes.In和ParameterAttributes.Out。相反,“ref”参数实际上由一种特殊的“Type”对象表示,“out”参数只是带有附加属性的ref参数(我还不知道哪种属性)。

无论如何,要创建一个by-ref参数,你调用Type.MakeByRefType(),但我的问题是,如果你已经有了一个by-ref类型,你如何回到原始类型?

提示:它不是UnderlyingSystemType:

Type t = typeof(int);
Console.WriteLine(t.MakeByRefType().UnderlyingSystemType==t); // FALSE

1 个答案:

答案 0 :(得分:13)

致电GetElementType()

相关问题