c# - 显式转换运算符中的 void* 是什么,它的用途是什么?

标签 c#

我刚刚在 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/

相关文章:

c# - PostgreSQL:42883 运算符不存在:没有时区的时间戳 = 文本

c# - ServiceStack.Redis 无法连接sPort

时间:2019-03-17 标签:c#mvc: Persisting data from View to Controller and then via single object for List<ViewModel>

c# - Thread.Sleep(1) 耗时超过 1 毫秒

c# - 如何通过 SSL 从 LDAP 获取 DirectoryEntry?

c# - 它说command.ExecuteNonQuery()未初始化

c# - 如何使用 Microsoft 身份验证库 (MSAL) 通过 AD 应用 ClientId 和 Client Secret 获取 token

c# - 自定义错误在本地工作,而不是在 IIS 上部署后

c# - 如何设置对公共(public) Elastic Transcoder Amazon SDK 的权限

c# - 如何知道 native 方法是否安全/不安全?