Cevap: Foreach tarafından geçilebilen nesneler, süperarayüz IEnumerator veya beyanmış GetEnumerator yöntemini uygulayan türden koleksiyon veya dizi nesneleri olmalıdır Q: Ama genellikle foreach in'i kullandığımda doğrudan kullanıyorum ve sorun olmuyor. Sorabilir miyim, neden böyle? Soruda sorulduğu gibi süper arayüz IEnumerator veya beyanmış GetEnumerator yöntemini uygulamak istiyorsanız ne yapmalısınız? Teşekkür ederim Cevap: foreach in kullanırken genellikle sistem tanımlı bir koleksiyon sınıfı kullanırız (ICollection arayüzünü uygulayarak). Örneğin, arrayList, stringDictionary, array vb. Bunlar platform tarafından paketleniyor ve IEnumerator arayüzünü uygulamaya yakın. Yazdığınız sınıfın aynı anda foreach yapabilmesi için, sınıf yazarken arayüzü uygulamanız gerekir. Bu, sonrasında her geçişi mümkün kılar. Örneğin, bir insan sınıfı tanımlayıp IEnumerator arayüzünü uygulayın. Eğer bir dizisi varsa People[] tempPeople, o zaman şunları kullanabilirsiniz: foreach( p in tempPeople){ console.writeline(p.name); Bu, for döngülerini kullanma zahvesini ortadan kaldırır. Iemumerator arayüzünün nasıl uygulanacağına gelince. Sadece MSDN'i kontrol et. Daha kalın bir kitap da arayabilirsiniz.
|