2011-11-16 5 views
6

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

1

Arabirimler yalnızca nesnelerde olabilir.

+0

Bunun açık bir şekilde soruya cevap verdiğine inanmıyorum. – ChaosPandion

2

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

+0

ToString() yöntemi neden uygun değil? –

+2

Kullanılabilir. –

14

: 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önelik

, 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.

Temel olarak onlar gerçekten arayüzleri için ilgili ifade tipine üyesi olmayan olmasa bile kendisine derleyici object üyeleri hep gerçekten yürütme anda kullanılabilir olacağını anlatmak için, geçiştirmek var.

+0

+1 john for C# 4 spec spesifikation ...... –

+0

Ayrıca bu üyelere sahip olmak mantıklı. – ChaosPandion