我刚刚在 visual studio 中按 F12 时在 mscorlib IntPtr
结构中遇到了以下代码。
public static unsafe explicit operator void* (IntPtr value)
{
return value.m_value;
}
我知道我们可以像这样定义显式转换运算符,但它是 void* 所以我很困惑这是什么以及它的用途是什么?
最佳答案
Void* 是一个空指针。它是 C++ 中经常使用的结构。大多数情况下,当您想要将指针用于多种其他数据类型,或者您不确定要将指针用于哪种数据类型时,就会使用它。
本质上,您可以将其视为一种通用类型,因为它可以转换为任何其他指针类型,反之亦然。它通常在处理非托管代码时使用,并且是 C++ 构造。在托管代码中,它通常没有用处。
关于c# - 显式转换运算符中的 void* 是什么,它的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33752653/