C#中nullable的value比對請盡量用雙等號不要用Equals

 
很久前寫過的

在日常工作Blazor Server開發中
往往只要一有類似exception 比方最常遇到的null exception
就會斷線
因此寫的程式就需要不斷驗證且更加謹慎= =|||


使用Equals在string之間值比對

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
try {  
    string str = null;  
    if (str.Equals("test")) {  
        Console.WriteLine("if");  
    } else {  
        Console.WriteLine("else");  
    }  
} catch (Exception ex) {  
    Console.WriteLine(ex.Message);  
}  
Console.ReadLine(); 



結果會有例外
因為前方為null 再調用.Equals
要將兩邊顛倒
不過左右順序往往還要多加這塊判定其實也比較麻煩


第二種叫建議方式
若是nullable (int? ,short?)或者string
都建議用雙等號比對就不會報null exception程式也較穩定不會有未爆彈

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
try {  
	string str = null;  
	if (str == "test") {  
		Console.WriteLine("if");  
	} else {  
		Console.WriteLine("else");  
	}  
} catch (Exception ex) {  
	Console.WriteLine(ex.Message);  
}  
Console.ReadLine(); 













留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

Architecture(架構) 和 Framework(框架) 有何不同?_軟體設計前的事前規劃的藍圖概念

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header