C#我可以检查IntPtr是否为null吗

本文关键字:null 是否 IntPtr 我可以 检查 | 更新日期: 2023-09-27 18:23:40

我的C#类中有一个IntPtr字段
它保存对C++库中对象的引用。

protected IntPtr ThingPtr;

在某个阶段,我可能会也可能不会初始化它。

ThingPtr = FunctionInMyCplusplusLibrary();

我想知道在这种情况下检查它是否为null是否有意义(检查它是否已初始化)

if(ThingPtr == null)
{
    //Do stuff
}

C#我可以检查IntPtr是否为null吗

IntPtr是一个值类型,不能为null。

你想检查它是否有(地址)0:的值

if (ThingPtr == IntPtr.Zero)

IntPtr是一个结构,它永远不能为null,您的库可能会返回null的等价值,但我希望它是零。

您可以使用IntPtr.Zero作为null,但它并不等同于C#null值。