作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Type.MakeByRefType
.NET 中的方法返回类型的 by-ref 版本,例如传递 System.Int32
的类型返回表示 System.Int32&
的类型.
但是,如果您已经拥有 System.Int32&
, 什么是获取普通老式的机制System.Int32
?似乎没有相反的方法来删除 by-ref 修饰符。
目前,我已经进行了一个 hack,它可以在没有 &
的情况下重新构建符合程序集限定的名称。在类型名称的末尾,然后加载该类型,但这太脏了......
最佳答案
根据 IsByRef
的文档,您可以使用 Type.GetElementType
.
对于 IsArray
的类型也是如此。或 IsPointer
是 true
.
var typeInt = typeof(int);
var typeIntRef = typeInt.MakeByRefType();
var typeIntArray = typeInt.MakeArrayType();
var typeIntPointer = typeInt.MakePointerType();
Debug.Assert(typeIntRef.GetElementType() == typeInt);
Debug.Assert(typeIntArray.GetElementType() == typeInt);
Debug.Assert(typeIntPointer.GetElementType() == typeInt);
关于.net - Type.MakeByRefType 的反义词是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/607130/
Type.MakeByRefType .NET 中的方法返回类型的 by-ref 版本,例如传递 System.Int32 的类型返回表示 System.Int32& 的类型. 但是,如果您已经拥有
我是一名优秀的程序员,十分优秀!