.Net Uygulamalarında Kod İncelemesi (Code-Review)- Gün:4
Kurumumuz bünyesinde geliştirdiğimiz uygulamalardaki tecrübelerimiz ve ilgili uygulamalar üzerindeki best practise örneklerinin derlendiği .Net uygulamalarında kod incelemeleri yazı serimize devam ediyoruz.
Her eşitlik eşit değildir, bazıları daha da eşit değildir.
== kullanmak mı yoksa Equals metodu mu doğru olan ? Aslında sorunun yanıtı ne almak istediğimize bağlı
hem eşitlik operatörü (==) operatörü hem de Equals methodu , değer tipli ya da referans tipli değişkenlerin karşılaştırılmasında kullanılır. Eşitlik operatörü(==) referans değerlerine bakarken, equals methodunda içeriklerin aynı olması eşitliğin sağlanması için yeterlidir.
Örnek Uygulama : 0
static void Main(string[] args)
{
string city = "Çankırı";
string capitalCity = city;
Console.WriteLine(" result of city == capitalCity is {0} ", city == capitalCity);
Console.WriteLine(" result of city equals capitalCity is {0}", city.Equals(capitalCity));
Console.ReadKey();
}
çıktı :
Yukarıdaki örnekte; ilk olarak string bir ifadeyi diğerine atadık. Yani iki değişken heap’te aynı adresi işaret etmektedirler. Aynı değere de sahip olduklarından iki karşılaştırma sonucu da True olarak çıkmıştır.
Örnek Uygulama :1
static void Main(string[] args)
{
object city = "Çankırı";
char[] values = { 'Ç', 'a', 'n', 'k', 'ı', 'r', 'ı' };
object capitalCity = new string(values);
Console.WriteLine(" result of city == capitalCity is {0} ", city == capitalCity);
Console.WriteLine(" result of city equals capitalCity is {0}", city.Equals(capitalCity));
Console.ReadKey();
}
Çıktı :
son örneğimizde, referans değerleri aynı olmadığı için == sonucu false dönmüştür. İçerikler aynı olduğundan Equals methodu çıktısı true olmuştur.
Son olarak belirtelim, equals methodu içerik karşılaştırması yaptığı için, eğer içerik olarak null değer görürse hata fırlatacaktır.
Yeni yazımızda görüşmek üzere .