Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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
Vb.net 在Visual Studio中调试时出现奇怪的NullReferenceException_Vb.net_Visual Studio 2015 - Fatal编程技术网

Vb.net 在Visual Studio中调试时出现奇怪的NullReferenceException

Vb.net 在Visual Studio中调试时出现奇怪的NullReferenceException,vb.net,visual-studio-2015,Vb.net,Visual Studio 2015,我使用Visual Studio社区版在VB.Net中开发。从2015版开始,我在调试时注意到一个奇怪的行为:如果我用一个中断点停止执行,然后在代码中做一些更改,不管这些更改多么无害(比如编辑字符串),VS都会接受我的更改,但随后它会再次停止,这是因为包含有效对象的变量现在是空的,也就是说,没有任何价值。这是一个已知的错误,还是我可以做些什么来避免或规避它?多谢各位 在程序运行时编辑代码通常不是一种好的做法。这是因为当您在VisualStudio中点击“运行”按钮时,代码被编译成计算机可以读取和

我使用Visual Studio社区版在VB.Net中开发。从2015版开始,我在调试时注意到一个奇怪的行为:如果我用一个中断点停止执行,然后在代码中做一些更改,不管这些更改多么无害(比如编辑字符串),VS都会接受我的更改,但随后它会再次停止,这是因为包含有效对象的变量现在是空的,也就是说,没有任何价值。这是一个已知的错误,还是我可以做些什么来避免或规避它?多谢各位

在程序运行时编辑代码通常不是一种好的做法。这是因为当您在VisualStudio中点击“运行”按钮时,代码被编译成计算机可以读取和执行的汇编语言

如果您在断点暂停并编辑代码,VisualStudio在执行程序时不能重新编译,这可能是您的变量中“没有”的原因。

调试某些代码段的一种方法是将要测试的代码放入它自己的子例程中,然后在窗体上有一个按钮(如果使用winforms)执行子例程


但是,每次编辑代码时,最好在完成编辑后停止程序并点击run,以便VS重新构建(编译)您的程序。

我同意您关于应避免“动态”编辑代码的说法。然而,这是尴尬的,因为VS 2013没有显示这种行为,也没有良好的旧Visual Basic Express 2010。那么,他们(或者我应该)在这里做了什么不同的事情呢?您是否尝试过在子例程中测试代码的各个部分?我不确定这是否是VS 2015中的一个漏洞-我更愿意将其视为一个安全功能,因为它要求在编辑后再次运行程序之前重新构建程序。我怀疑这是一个漏洞@Dustin的原因如下:1。它发生在我的代码的不同位置,除了执行暂停(由于异常或中断点)之外,没有任何共同点,我做了一些轻微的更改,不会导致VS在代码下面加上紫色下划线——在这种情况下,除了停止运行外,别无选择。2.在2013年、2012年和2010年,这一事件从未发生过。-这说明了如何启用或禁用设置,以便在调试时能够进行编辑,这是我认为您在我的IDE中要求的,它提供了一个带有四个sup选项的选项。“启用编辑并继续”已启用,就像“启用本机编辑并继续”、“继续时应用更改(仅本机)”和“警告过时代码(仅本机)”一样。“允许预编译”被禁用,我现在启用了它,让我们看看它是否改变了什么。注意:我的IDE是葡萄牙语的,所以上面这些是我的翻译,我不知道英文界面是否使用相同的单词。