2010-11-26 22 views
8

StringComparer.OrdinalIgnoreCase özelliğine ilişkin MSDN belgelerine göre:Anonim bir tür başka türde mi devralabilir?

OrdinalIgnoreCase özelliği, StringComparer sınıfından türetilen bir anonim sınıf örneğini döndürür.

Bu alışılmadık bir özellik mi - miras ile anonim tipler mi? Ya da "anonim sınıf" tarafından yazar sadece "istemci koduna görülemeyen StringComparer'dan türeyen dahili sınıf" anlamına geliyordu?

+0

olası bir kopyası [Can a C# anonim sınıfı bir arabirim uygular mı?] (Http://stackoverflow.com/questions/191013/can-ac-sharp-anonymous-class-implement-an-interface) – nawfal

cevap

7

Eğer StringComparer için kaynak koduna baktığımızda, sen OrginalIgnoreCase StringComparer türetilmiştir OrdinalComparer, bir örneğini döndürür görebilirsiniz.

Görebildiğim bu konuda 'anonim' bir şey yok, bu yalnızca dahili içeriyor, böylece çerçevenin dışından göremiyorsunuz.

+0

Yapmak için çok tembel olduğum şeyi yaptığınız için teşekkürler - gerçek kaynağa bakarak;) –

4

derleyici, başka türden devralınan anonim türler oluşturabilir - yapamazsınız. Bu çok kötü, gerçekten başka bir sınıftan miras alan veya bir arabirim uygulayan anında anonim bir yazı oluşturmak için harika bir özellik olacaktır.

+4

Evet, oluşturma Bir arabirimi uygulayan anonim bir tür, biraz temiz olacaktır. – BFree

9

Terimin normal C# anlamında anonim bir yazı değil.

Sadece dahili bir tür, bu nedenle adını bilmiyorsunuz: kodunuzdaki tam türden bahsedemezsiniz.

+0

Teşekkürler; Merak ettiğim şey bu. Bunu +1 verdim ama Will'in cevabını kabul etti çünkü aslında kaynak koduna bakma zorluğuna gittim (Reflektörde, varsayalım). –

+0

Kaynak kodu MS'den indirilebilir (referans kaynakları projesi utanç verici bir karmakarışık olsa da) - Windows tarafından da indekslendim, bu yüzden bu tür şeylere bakmak çok hızlı. http://referencesource.microsoft.com/netframework.aspx –

3

Anonim tip anonim bizim için CLR ve derleyici değil. Derleyici, adında <> içeren bir komik adlandırma kullanır ve sadece derleyici bunu yapabilir! ve belki Chuck Norris ...

+4

Chuck Norris anonim türün adını biliyor. –

+3

Chuck Norris, anonim bir türde birden fazla devralma çekebilir ... – Aliostad

+1

Doğru, ama emin olamadım * bu * belgelerin bile "anonim" tarafından ne anlama geldiğidir (derleyici tarafından oluşturulan tür, örneğin, C# anonim tür özelliği)). Görünüşe göre, Will'in cevabı, tamamen farklı bir anlam. –

İlgili konular