我有一个非常简单的C#代码(它是MVC 2中的一个控制器动作,由jQuery async post方法调用)。基本上我传入3个字符串并执行以下操作:
var g1 = new Guid(string1);
var g2 = new Guid(string2);
var g3 = new Guid(string3);
然而,在第3次guid创建时,我得到一个空引用异常。当我快速观察任务时,它运行正常,但是当我让它运行时,我总是得到异常(即使我改变了赋值的顺序或者尝试使用var g3 = new Guid(string2);传入的字符串绝对是Guids
我完全难以理解为什么一个简单的Guid任务会失败,似乎在这个过程中会发生其他事情。有什么想法,或者有没有人见过这种行为?
感谢。
答案 0 :(得分:0)
变量string3
为null
。
尝试从前面的代码中找出是否存在string3
变为null的选项。为了更好地衡量,请将代码更改为:
if (string3 == null)
throw new Exception("string3 was null");
并尝试用它进行测试。
答案 1 :(得分:0)
你为什么使用var?您是否尝试使用Guid作为g1-g3的数据类型?而且不是使用
//if (string3 == null)
我用
if( string.IsNullOrEmpty(string3) )
因为字符串也可能是空字符串。