reyou Mesaj tarihi: Aralık 14, 2010 Paylaş Mesaj tarihi: Aralık 14, 2010 IEnumerable<string> lines = File.ReadLines(filePath); abi simdi C# icerisinde IEnumerable interface tanimlanmis, ve lines objesi bir class instancesi gibi davraniyo, e simdi bu adamlar nie IEnumerable diye bi class degilde interface tanimlanis? bide niye parametre olarakta (object) olarak degil su <...> isareti acaip kafami karistiriyo benim :S Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Ractamainus Mesaj tarihi: Aralık 14, 2010 Paylaş Mesaj tarihi: Aralık 14, 2010 ReadLines() metodunun döndürdüğü obje (ne olduğunu buradan bilemiyoruz tabii), IEnumerable instance'ından türetilmiş olmalı. yoksa IEnumerable<> generic'ine atanamazdı. IEnumerable'da objeleri koleksiyon gibi kullanmamızı sağlayan bir interface. bu interface'i uygulamış objeler içinde (aslında bize sundukları koleksiyonlarda) dönebiliyoruz ya da pointer sayesinde ilerleyebiliyoruz. "<>" type belirtiyor. "type" ne dersen, c# generic mantığını anlamak lazım. generic method'u anlamak için de delegate mantığını anlaman lazım.. bunları anlamak da önemli aslında.. event handling'den tut da, linq ya da lambda expression'a kadar bir çok konu, bu temel üzerinde ilerliyor. ve kesinlikle karışık bir konu. mesela senin örneğinde IEnumerable, string tipinde bir objeyi delege edip, metodlarını çalıştırabiliyor. jenerikliği de buradan geliyor zaten.. zira başka tipte objeleri de aynı biçimde kabul edebiliyor (atıyorum int array olsaydı da kabul edebilecekti). yani metodları, parametrik tiplerinden bağımsız olarak çağırma olayının kendisi delegation zaten. "<>" gördüğün her obje de aslında generic. zira tipten bağımsız hareket ediyor. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
reyou Mesaj tarihi: Aralık 14, 2010 Konuyu açan Paylaş Mesaj tarihi: Aralık 14, 2010 hmmm kafada bisiyler cakmaya basladi sanirim :) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Prosciutto Mesaj tarihi: Aralık 14, 2010 Paylaş Mesaj tarihi: Aralık 14, 2010 reyou said: e simdi bu adamlar nie IEnumerable diye bi class degilde interface tanimlanis? belirli ortak özellikleri olan sınıfları bir çatı altında toplamak için interface tanımlarsın. öyle durumlar oluşuyor ki bir nesnenin hangi sınıfa ait olduğu değil, sadece Enumerable (veya başka bir interface) olduğu ilgilendiriyor seni. Bu tarz durumlarda çok daha esnek ve genişletmesi kolay yazılım geliştirmeni sağlıyor. open - closed principle, loose coupling, dependency injection gibi konuları araştır biraz bence. factory design pattern'ını incele falan. daha netleşir bazı şeyler kafanda. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar