Bildiğim gibi, .net'deki arabirimler dışındaki nesnelerden türetilen her şey. Ama ben "." Düğmesine bastığımda farkettim. arayüz adından sonra Eşit yöntem görünür. Ve eşittir yöntemi için F12'ye bastığımda, nesne sınıfında eşittir yöntemine yönlendirir. Arabirimler nesne sınıfından türetilmiyorsa, eşittir yöntemi nereden geliyor?Arabirimlerde Eşit Metot
cevap
Arabirimler yalnızca nesnelerde olabilir.
Arabirimi uygulayan her tür, sonuç olarak nesneyi türetir, dolayısıyla Equals her zaman tanımlanır. Cı 4. spec bölüm 13.2 kaynaktan
ToString() yöntemi neden uygun değil? –
Kullanılabilir. –
: kesinlikle konuşma sınıf nesnesi üyeleri, olmadıklarını
Not, herhangi bir arayüz üyeleri (§13.2). Bununla birlikte, sınıf nesnesindeki üyeler, herhangi bir arabirim türünde üye aramasıyla kullanılabilir (§7.4).
Ve bölüm 7.4:
- Birincisi, N adlı erişilebilir üyelerin kümesi belirlenir:
- ...
- Aksi takdirde, set tüm erişilebilir (§ oluşur 3.5) devralınan üyeler ve nesnede N adlı erişilebilir üyeler dahil, T'de N olarak adlandırılan üyeler. [...]
ve bölüm 7.4.1:
:
elemanı arama amaçlarına yönelikTemel olarak onlar gerçekten arayüzleri için ilgili ifade tipine üyesi olmayan olmasa bile kendisine derleyici, bir tür T aşağıdaki baz türleri sahip olduğu kabul edilir ...
• Eğer T bir arabirim tipiyse, T'nin temel tipleri T ve temel sınıf nesneleridir.
object
üyeleri hep
gerçekten yürütme anda kullanılabilir olacağını anlatmak için, geçiştirmek var.
+1 john for C# 4 spec spesifikation ...... –
Ayrıca bu üyelere sahip olmak mantıklı. – ChaosPandion
Bunun açık bir şekilde soruya cevap verdiğine inanmıyorum. – ChaosPandion