-2

我正在尝试提取存储为唯一标识符的 GUID,但我不断收到以下错误:对象引用未设置为对象的实例。这是代码。

    protected void btnGetGuid_Click(object sender, EventArgs e)
{
    System.Guid testGuid = new System.Guid(Server.UrlDecode(Page.Request.Cookies["userid"].Value));

    lblGuidReturn.Text = testGuid.ToString();
}

意识到我对 C# 有点陌生,我已经编写了足够多的 Java 来理解应该发生的事情,但这让我很困惑。

获得 GUID 后,我需要将其存储为字符串,但我认为一旦我解决了这个问题,那部分就可以工作了。任何帮助是极大的赞赏。

4

1 回答 1

0

由于 Guid 是一种值类型,因此将 guid 实例转换为字符串时不会出现对象引用错误。有几个地方可以抛出你提到的异常:

Server.UrlDecode(Page.Request.Cookies["userid"].Value)

Server 可以为 null,因为 UrlDecode 不是静态方法。(虽然这不太可能)

页面可能为空。请求可能为空;Cookies 集合可能为空。

很可能 cookie 集合不包含“userid”值,并返回 null。UrlDecode 无法引发 ObjectReference 错误,因为它会检查输入参数。

于 2013-03-22T21:21:57.170 回答