C# &引用;索引超出了数组的边界;检查非数组变量时
我有一个类“地址”,上面有以下检查:C# &引用;索引超出了数组的边界;检查非数组变量时,c#,C#,我有一个类“地址”,上面有以下检查: if(thisAddress == null) thisAddress = new Address(); 当代码运行时,我在第一行得到“索引超出了数组的边界”。如果删除If语句,第二行就会出现错误 这个类是从Linq到SQL的,但我对它进行了扩展。这以前是有效的,我不知道为什么会突然发生。thisAddress是UserControl中的私有变量 有什么想法吗?代码与二进制文件不同步。 尝试重新编译包含usercontrol的程序集 数据库中是否有任
if(thisAddress == null)
thisAddress = new Address();
当代码运行时,我在第一行得到“索引超出了数组的边界”。如果删除If语句,第二行就会出现错误
这个类是从Linq到SQL的,但我对它进行了扩展。这以前是有效的,我不知道为什么会突然发生。thisAddress是UserControl中的私有变量
有什么想法吗?代码与二进制文件不同步。
尝试重新编译包含usercontrol的程序集
数据库中是否有任何您认为会破坏LINQ到SQL映射的更改?通常,LINQ语句是延迟执行的,或者在使用它们时执行,而不是在编写链接时执行。因此,完全有可能在If语句后面执行的代码实际上就是故障所在 如果是这种情况,那么您可以尝试单步执行该语句(可以对thisAddress类使用相等检查),调试器应该向您显示正在执行的linq 另一种方法,也是我主要使用的方法,是将调试器设置为在抛出异常时中断,而不是在未处理异常时中断,这是跟踪此类问题的一种非常好的方法。(在VS中抛出调试器/异常时勾选)
希望这能帮助你解决这个问题。显然我漏掉了一条重要的信息。代码位于控件属性的get{}部分内。错误是代码中的另一行(我使用的是split()),但调试器指向get{}语句的第一行。thisAddress是什么类型的变量?