Statik ve örnek metotlarla ilgili bir tartışmada her zaman, Sqrt()
bunun statik metot yerine sayı türlerinin örnek metodu olması gerektiğini düşünüyorum . Neden? Belli ki bir değer üzerinde çalışıyor.
// looks wrong to me
var y = Math.Sqrt(x);
// looks better to me
var y = x.Sqrt();
Değer türleri açıkça, birçok ülkede olduğu gibi, bir örnek yöntemi olduğu gibi, örnek yöntemlere sahip olabilir ToString()
.
Yorumlardan bazı soruları cevaplamak için: Neden 1.Sqrt()
yasal olmamalı ? 1.ToString()
olduğunu.
Bazı diller değer türleri üzerinde yöntemlere sahip değildir, ancak bazı diller olabilir. Java, ECMAScript, C # ve Python (bunlarla birlikte) dahil bunlar hakkında konuşuyorum __str__(self)
. Aynısı ceil()
, floor()
vb. Gibi diğer fonksiyonlar için de geçerlidir .
Sqrt(x)
görünüyor bence Bu, bazı dillerde sınıfla işlevi hazırlama anlamına gelirse, ben bununla iyiyim. O Eğer vardı bir örnek yöntemi, daha sonra o olduğunu belirtmek için daha uygun olacağı dönen bir değeri yerine modifiye örneği. x.Sqrt()
x.GetSqrt()
1.sqrt()
geçerli olması?