Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Hayır, enum yerine dizi kullanmak kötü bir tasarımdır.
Örnek: Bir dize değeriniz olduğunu düşünün. Ve görev, bu dizgenin eşit olup olmadığını/içinde enum öğeleri adlarından birini (EnumToString()) içerip içermediğini bulmaktır.
Bunu nasıl çözersiniz?
Böyle bir şeyin gerekli olduğu gerçek bir durum sağlayabilir misiniz? Enum sadece sabitlerdir, neden öğeler içinde bir dize tanımlamak istiyorsunuz?
Bir çit yapısı oluşturmak istiyorsanız.
Ama sonra gerçek değeri keşfetmek için hepsini karşılaştırırım.
Böyle bir şeyin gerekli olduğu gerçek bir durum sağlayabilir misiniz? Enum sadece sabitlerdir, neden öğeler içinde bir dize tanımlamak istiyorsunuz?
Benim sorum sadece bir örnekti. Konu başlatıcı başka bir konuyu açıkladı. Sizin için yeterince "gerçek" olmadıklarını ve herkesin geçici çözümler kullanabileceğini anlıyorum, ancak bu, bu görevleri, onları çözen insanlar için gerçek yapmaz.
Ve biz hala burada sıkışıp kaldık... Bir çözüm ancak gerçek bir sorun için bulunabilir. OP'nin asıl sorununu biliyor musunuz? Yapmıyorum.
Bunun faydalı olacağı pek çok gerçek durum biliyorum. Bu yüzden yaklaşımı dizilerle KULLANIYORUM, çünkü başka bir yol yok.
Örnek: Bir şeyin enum/listesine sahipsiniz (programınız için GUI Dil seçenekleri diyelim) ve kullanıcının seçmesi için bunun için radyo düğmeleri oluşturmak istiyorsunuz. Numaralandırmanızdaki öğe sayısını değiştirirseniz, daha sonra düğme kodunu değiştirmek İSTEMEZSİNİZ.
Ve programınıza uygulamak için bu enum değerini düğmenin adından almanız gerekir. Numaralandırmanızdaki HER öğe için kod yazmak İSTEMİYORSUNUZ, bir döngü içinde basit bir çözüm istiyorsunuz
Bu, yalnızca dillere değil, birçok başka şeye de uygulanabilir:
Birçok yolu aynı şeyleri yapmaktır.
En az birini biliyorum çünkü kullanıyorum.
Ve bahsettiğimiz özelliği işe yaramaz hale getirmez. Taşla çivi çakabilirsiniz ama bu her zaman yapmanız gerektiği anlamına gelmez.
Bunun faydalı olacağı pek çok gerçek durum biliyorum. Bu yüzden yaklaşımı dizilerle KULLANIYORUM, çünkü başka bir yol yok.
1. Bir şeyin enum/listesine sahipsiniz (programınız için GUI Dil seçenekleri diyelim) ve kullanıcının seçmesi için bunun için radyo düğmeleri oluşturmak istiyorsunuz. Numaralandırmanızdaki öğe sayısını değiştirirseniz, daha sonra düğme kodunu değiştirmek İSTEMEZSİNİZ.
Ve programınızı uygulamak için bu enum değerini düğmenin adından almanız gerekir. Numaralandırmanızdaki HER öğe için kod yazmak İSTEMİYORSUNUZ, bir döngü içinde basit bir çözüm istiyorsunuz
Bu, yalnızca dillere değil, birçok başka şeye de uygulanabilir:
Andrey'i tanıyorum. Örneğiniz dinamik bir çözüme ihtiyaç duyuyor, bu nedenle enum değil dizi kullanıyorsunuz. Dinamik olan bir şey (örneğiniz) için enum (statik) kullanmak istiyorsanız, bu kötü bir tasarımdır. Bana aynı şeyi söylüyoruz gibi geliyor.
OP'ye neden döngü yapması gerektiğini söylemediği için daha fazla yardımcı olamayız.
En az birini biliyorum çünkü kullanıyorum.
Ve bahsettiğimiz özelliği işe yaramaz hale getirmez. Taşla çivi çakabilirsiniz ama bu her zaman yapmanız gerektiği anlamına gelmez.
Java dili bile HERHANGİ bir numaralandırma türü olmadan çok uzun bir süre vardı ve Java saf dizileri nadiren kullandığından, bir değerler listesini yinelemenin başka birçok OO yolu vardı. Ben ona taş ve çivi demezdim.