我从客户端接收到一些 json 格式的数据。

string TheText; // or whould it be better string TheText = ""; ?
TheText = ((serializer.ConvertToType<string>(dictionary["TheText"])).Trim());

如果从 json 解析的变量返回空,当我调用 .Trim() 方法时,此代码是否会崩溃?

谢谢。

答案

如果序列化器返回一个空字符串,Trim不会做任何事。

如果序列化器返回null,你会得到一个NullReferenceException打电话给Trim

您的代码会更好地编写(就初始化而言),如下所示:

string theText = 
            ((serializer.ConvertToType<string>(dictionary["TheText"])).Trim());

声明和初始化变量并立即为其赋值是没有意义的。

如果您不知道序列化器可能返回什么,以下内容是最安全的:

string theText = ((serializer.ConvertToType<string>(dictionary["TheText"])));

if(!string.IsNullOrEmpty(theText))
{
    theText = theText.Trim();
}

来自: stackoverflow.com