编程语言
首页 > 编程语言> > c# – 为什么在.net 2.0中向一个原语(即:int)转换null会抛出一个空引用异常而不是一个无效的强制转换异常?

c# – 为什么在.net 2.0中向一个原语(即:int)转换null会抛出一个空引用异常而不是一个无效的强制转换异常?

作者:互联网

我正在浏览一些代码并遇到了我的组合框尚未初始化的情况.这是在.NET 2.0中,在下面的代码中,this.cbRegion.SelectedValue为null.

int id = (int)this.cbRegion.SelectedValue;

此代码抛出了空引用异常,而不是无效的强制转换异常.我想知道是否有人知道为什么它会抛出空引用异常而不是无效的强制转换?

解决方法:

它与Boxing和拆箱有关.它试图从框中取出一个int(unbox),但该对象为null,因此在获得转换更改之前,您将获得一个空引用异常.

标签:c,casting,net,net-2-0
来源: https://codeday.me/bug/20190713/1445610.html