Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 警告:变量在赋值之前通过引用传递。运行时可能会导致空引用异常_.net_Vb.net_Warnings_Nullreferenceexception - Fatal编程技术网

.net 警告:变量在赋值之前通过引用传递。运行时可能会导致空引用异常

.net 警告:变量在赋值之前通过引用传递。运行时可能会导致空引用异常,.net,vb.net,warnings,nullreferenceexception,.net,Vb.net,Warnings,Nullreferenceexception,我在vb.net上工作,我得到了上面关于未分配引用变量的警告。当我为变量赋值时,警告消失。现在我的问题是,分配一个Nothing值对参考变量有什么影响??即使我没有显式地分配任何值,那么默认值也是Nothing仅我猜??如果我错了,请纠正我 PS:这是microsoft所说的“如果变量从未被赋值,它将保留其数据类型的默认值。对于引用数据类型,该默认值为零。”下面是完整的链接:您会注意到这是一个警告,而不是错误。代码没有什么特别的错误,这就是为什么它不是一个错误ByRef参数用于将数据传入和传出方

我在vb.net上工作,我得到了上面关于未分配引用变量的警告。当我为变量赋值时,警告消失。现在我的问题是,分配一个Nothing值对参考变量有什么影响??即使我没有显式地分配任何值,那么默认值也是Nothing仅我猜??如果我错了,请纠正我


PS:这是microsoft所说的“如果变量从未被赋值,它将保留其数据类型的默认值。对于引用数据类型,该默认值为零。”下面是完整的链接:

您会注意到这是一个警告,而不是错误。代码没有什么特别的错误,这就是为什么它不是一个错误
ByRef
参数用于将数据传入和传出方法,因此,如果在将该变量作为参数传递之前忘记将其赋值,则如果方法假定该参数具有值,则可能会在该方法中抛出
NullReferenceException
。通过显式地将变量设置为
Nothing
,您告诉编译器您特别希望变量为
Nothing
,这不仅仅是因为您忘记分配其他值。

这意味着您已为其分配了一个值,因此编译器检查您是否已为其分配了一个值,不会产生警告。做得好。您已经成功地消除了警告,并且没有采取任何措施来阻止它试图帮助您进入的问题。很好。您没有显示任何示例代码,但是应该指出,只有当函数将对需要传递回调用方的参数进行赋值时,才应该将函数参数定义为ByRef。我看到很多新手程序员认为,因为变量是对对象的引用,所以参数必须是ByRef。那是错误的。