【问题标题】:new Guid(string) is throwing a null ref exception but not when quick watchednew Guid(string) 抛出空引用异常,但在快速观看时不会
【发布时间】:2011-05-03 17:23:34
【问题描述】:

我有一段非常简单的 C# 代码(它是 MVC 2 中的一个控制器操作,由 jQuery 异步 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 分配会失败,似乎在导致这种情况的过程中还有其他事情发生。有什么想法,或者以前有人见过这种行为吗?

谢谢。

【问题讨论】:

  • 空引用异常发生在哪一行代码?您的代码,还是在Guid 构造函数中?
  • 请发布整个函数。
  • 是扔NullReferenceException还是ArgumentNullException

标签: c# asp.net jquery asp.net-mvc-2


【解决方案1】:

你为什么使用 var?您是否尝试过使用 Guid 作为 g1-g3 的数据类型?而且也不是使用

//if (string3 == null)

我会用

if( string.IsNullOrEmpty(string3) )

因为字符串也可能是空白字符串。

【讨论】:

    【解决方案2】:

    变量string3null

    尝试从前面的代码中找出string3是否有一个选项可以变为null。为了更好地衡量,将代码更改为:

    if (string3 == null)
        throw new Exception("string3 was null");
    

    并尝试对此进行测试。

    【讨论】:

      猜你喜欢
      • 2021-04-29
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多