Ördek yazarak C# derleyici
NotBudeğilveya C ördek yazarak uygulamak taklit hakkında bir soru#...
Birkaç yıldır etkisi altında bazı C# dil özellikleri veri yapıları dilin kendisi bana hep garip tavuk ve yumurta bir senaryo gibi görünüyordu () tanımlanan depdendent. Örneğin, foreach
döngü kullanılabilir IEnumerable
uygulanan türleri ile kullanım için olduğunu sanıyordum.
O zamandan beri geldim gayet güzel bir C# derleyicisi kullanır ördek yazarak olup olmadığını belirlemek için bir nesne kullanılabilir bir foreach döngü birini arıyorum GetEnumerator
yöntem yerine IEnumerable
. Bu tavuk ve yumurta bilmece kaldırır gibi çok mantıklı.
Bu using
blok ile durum gibi görünmüyor değil mi neden ve IDisposable
olarak biraz kafam karıştı. Derleyici ördek yazarak & kullan Dispose
bir yöntem göremiyorum özel bir sebebi var mı? Bu tutarsızlık nedeni nedir?
Belki de başka bir şey IDisposable ile kaputun altında gong var?
Neden tartışıyorhiçElden IDisposable uygulayan yoktu yöntemi bu sorunun kapsamı dışında bir:) bir nesne var
CEVAP
IDisposable
burada özel bir şey yok - ama varbir şeyler kullanımına özel.
# 2, foreach
Bu ördek türü kullanarak C önceydisadecekesinlikle yazılan yineleyici ve değer üzerinden yineleme tek yolu da boks olmadan tipler. bir uygulamak olduğunu BenşüpheliC# ve .NET, foreach
başlangıç jenerik olurdu vardıgerekliÖrdek yazarak geçirdi IEnumerable<T>
yerine, ve değildir.
Şimdi derleyici aklıma başka yerlerde bir çift ördek yazarak bu tür kullanır:
- Koleksiyon başlatıcılar bakmak için uygun
Add
aşırı yük (yanı sıra türü olan uygulamakIEnumerable
sadece göstermek için bu gerçekten bir koleksiyon bir tür); bu izin için esnek ekleyerek tek öğeleri, anahtar/değer çiftleri vb - SERİ (
Select
vb.) - bu SERİIEnumerable<T>
kendisini değiştirmek zorunda kalmadan esnekliği, birden fazla tür karşı aynı sorgu ifade biçimi sağlayan, sağlar - # 5 C ifadeleri
GetAwaiter
16* /OnCompleted
/GetResult
*hangi awaiter bir tür dönmek için gerektirir bekliyor
Her iki durumda da bu kavramı daha önce olmadığı daha kolay mevcut türleri ve aralarındaki özelliği eklemek için yapar.
IDisposable
ilk sürümü beri çerçevesinde olduğu göz önüne alındığında, ördek fayda using
deyimi yazarak olacağını sanmıyorum. Açıkça tartışma IDisposable
uygulamadan Dispose
olması için sebep görmemezlikten gelmeye çalışıyordu biliyorum, ama önemli bir nokta olduğunu düşünüyorum. Dilinde bir özelliği uygulamak için iyi bir sebep olmalı, ve ördek yazarak bilinen bir arabirim destekleyen üstünde ve ötesinde bir özelliği olduğunu iddia ediyorum. Eğer bunu yaparken net fayda ise yok, dili sona ermeyecek.
Nasıl ördek yazarak eski farklı '...
Bu nesne-ömrü uzatan-kapatma C# derley...
Hata javac derleyici olarak eclipse ve...
Bu derleyici optimizasyonu bir hata, y...
C 11 Derleyici: en Yakın standart ve n...