Kas*_*oda -7 c# exception nullreferenceexception
我有一个抛出NullReferenceException的代码段.代码段就是这样的.
if (string.IsNullOrWhiteSpace(user.FirstName) && !(user.FirstName.Length <= 64))
{
// Some Code
}
Run Code Online (Sandbox Code Playgroud)
这里if条件首先要检查是否user.FirstName为Null或WhiteSpace.当值为user.FirstNamenull时,此代码段抛出一个NullReferenceException.我假设通过检查Lengthof 来抛出这个user.FirstName,但由于这是一个短路检查,因此第一个表达式不应满足条件并执行if块内的代码.或者我在这里遗漏了一些东西.
第二部分仅在执行时执行
string.IsNullOrWhiteSpace(user.FirstName)
Run Code Online (Sandbox Code Playgroud)
结果是真的.所以你需要
!string.IsNullOrWhiteSpace(user.FirstName) && !(user.FirstName.Length <= 64)
Run Code Online (Sandbox Code Playgroud)
要么
string.IsNullOrWhiteSpace(user.FirstName) || !(user.FirstName.Length <= 64)
Run Code Online (Sandbox Code Playgroud)
根据您的要求.此外,user可能是null在这种情况下,短路将于事无补.