【发布时间】:2024-05-23 08:10:02
【问题描述】:
我惊讶地发现“ref”和“out”参数没有用特殊属性标记,尽管存在 ParameterInfo.IsOut、ParameterInfo.IsIn(据我所知,这两个参数始终为 false) 、ParameterAttributes.In 和 ParameterAttributes.Out。相反,“ref”参数实际上由一种特殊的“Type”对象表示,而“out”参数只是带有附加属性的 ref 参数(我还不知道是什么样的属性)。
无论如何,要创建一个 by-ref 参数,你调用 Type.MakeByRefType(),但我的问题是,如果你已经有一个 by-ref 类型,你如何回到原来的 Type?
提示:它不是 UnderlyingSystemType:
Type t = typeof(int);
Console.WriteLine(t.MakeByRefType().UnderlyingSystemType==t); // FALSE
【问题讨论】:
标签: .net reflection byref