【源码分析】你必须知道的string.IsNullOrEmpty && string.IsNullOrWhiteSpace
目录 写在前面 string.IsNullOrEmpty源码分析 string.IsNullOrWhiteSpace源码分析 总结 写在前面 之前自信撸码时踩了一次小坑,代码如下: private static void AppServer_NewMessageReceived(WebSocketSession session, string value) { if (string.IsNullOrEmpty(value)) { return; } value = HttpUtility.UrlDecode(value); SuperSocketTemp<string> model = JsonConvert.DeserializeObject<SuperSocketTemp<string>>(value); //具体业务... } 就是这段代码在测试环境抛错,说起来全是泪啊。这段代码的具体业务场景是Websocket即时通讯接收来自客户端的消息,消息以json字符串的形式传输。首先判断是否空字符串,如果不是,为了防止乱码进行Url解码,然后反序列化消息解析成需要的数据格式,最后执行具体的业务操作。 测试环境抛的错是万恶的“未将对象引用到对象的实例”,很简单就可以定位到问题的所在——反序列化失败了,只要在序列化之后执行具体业务逻辑之前加上非空判断就可以解决掉这个问题