加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

visual-c – 如何检查Managed C中的“NULL对象引用”?

发布时间:2020-12-16 03:14:44 所属栏目:百科 来源:网络整理
导读:我遇到了一些这样的MC代码: __gc class ClassA{Puclic: ClassB GetClassB();}__gc class ClassB{ Public: int Value;}int main(){ ClassA^ a = gcnew ClassA(); ClassB^ b = a-GetClassB(); int c = b-Value;} 在访问它的值之前,检查b是否为NULL是不重要的
我遇到了一些这样的MC代码:
__gc class ClassA
{
Puclic:
     ClassB GetClassB();
}

__gc class ClassB
{
 Public:
    int Value;
}

int main()
{
    ClassA^ a = gcnew ClassA();
    ClassB^ b = a->GetClassB();

    int c = b->Value;
}

在访问它的值之前,检查b是否为NULL是不重要的?我试过if(b == NULL),但它不工作.

还是没有必要做支票?但是我几乎不敢相信

PS:我只想知道这里的“引用”本身是否为NULL. B类的内容是否为null并不重要.

解决方法

这个程序在语法和语义上都是正确的,据我所知.

引用COULD在此处为null,具体取决于GetClassB()的实现.所以在技术上可能会有一个零参考等待在那里发生.

但是,如果GetClassB()的内容如下所示:

return gcnew ClassB();

您可以保证抛出异常或成功,这意味着引用永远不会意外为null.

所以,真正的答案是:这取决于,但你永远不需要检查null.

检查null使用:

if (b == nullptr)
{
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读