c#string.length

时间:2011-11-24 15:58:06

标签: c# string

这个简单的代码:

    [HttpPost]
    public ActionResult Check(string chosen_username, string email) {
        var lang = RouteData.Values["lang"]; ViewBag.Language = lang;

        string un; string em;
        try {
            un = chosen_username; em = email;
        }
        catch { un = ""; em = ""; }

        string s = un.Length.ToString();
        ViewBag.test = s;

        return View();
    }

将对象引用设置为未设置为对象异常的实例(在读取“string s = un.Length.ToString();”

的行上

有人能帮助C#新手吗?

3 个答案:

答案 0 :(得分:4)

我认为你没有初始化ViewBag对象,或者它是null 试试这个

if (ViewBag != null)
    ViewBag.test = un.Length.ToString();

要确保问题不在字符串中(并且不是,请相信我)试试这个

string s = un.Length.ToString();

并使用调试器检查s是您期望的那个。

OP发布新代码后编辑:
简单地说:string un为null !! 尝试使用

if (!String.IsNullOrEmpty(un))
    ViewBag.test = un.Length.ToString();
else {
    // Manage here the error
}

答案 1 :(得分:0)

对象引用例外是指您的ViewBag对象,而不是您的un.Length.ToString()值。

以下情况应该可以正常运行:

string un = "test"; string em = "test";
string test = un.Length.ToString();

答案 2 :(得分:0)

如果chosen_username为null,你应该得到那个空指针异常,因为你从未初始化你的un string变量,

你应该: - 检查空输入 - 初始化函数局部变量 - 分配它们以避免null,如: un = selected_username ??的String.Empty;