MQL4/MQL5でenumとitemの長さを取得する方法は? - ページ 3

 
Andrey Barinov:

いいえ、enumの代わりに配列を使用するのは設計上よろしくありません。

例を挙げましょう。文字列の値があるとします。そして、この文字列がenum項目名の1つと等しいか、含まれているかを調べるというタスクがあります(EnumToString())。

あなたはこれをどのように解決しますか?

そのようなことが必要とされる実際の状況を提供できますか?Enumは単なる定数であり、なぜ項目の中の文字列を識別したいのですか?
 
Alain Verleyen:
そのようなことが必要とされる実際の状況を提供することができますか?Enumは単なる定数であり、なぜ項目内の文字列を識別したいのですか?
 enum hedge
  {
   AUD=0,//Australian Dollar
   CAD=1,//Canadian Dollar
   CHF=2,//Swiss Franc
   JPY=3,//Japan Yen
   EUR=4,//European Euro
  };

もしあなたがヘッジ構造を構築したいのであれば。

しかし、その場合、私は単純にすべてを比較して、実際の価値を発見します。

sinput hedge C1=2;// Hedge Currency 

if(C1=="CAD")
 {
  //Do Something
 }
 
Alain Verleyen:
そのようなことが必要とされる実際の状況を提供できますか?Enumは単なる定数であり、なぜ項目内の文字列を識別したいのですか?
私の質問は単なる例です。トピックスターターは別のものを説明しました。私は、それらがあなたにとって十分に「現実的」ではなく、誰もが回避策を使うことができることを理解しています。
 
Andrey Barinov:
私の質問は単なる一例です。トピックの立ち上げ人が別のものを説明しました。私は、それらがあなたにとって十分に「現実的」ではなく、誰もが回避策を用いることができることを理解しています。
そして、私たちはまだここで立ち往生しています...解決策は、現実の問題に対してのみ見出すことができるのです。あなたはOPの本当の問題を知っていますか?私は知りません。
 
私もです...今まで何度もお願いしました。
 
Alain Verleyen:
そして、私たちはまだここで立ち往生している...解決策は、本当の問題に対してのみ見つけることができます。OPの本当の問題を知っていますか?私は知りません。

私は、この方法が役に立つ状況をたくさん知っています。そのため、私は配列でアプローチすることにしています。

例何かの列挙型リスト(例えば、あなたのプログラムのGUI言語オプション)を持っていて、ユーザーが選択できるようにラジオボタンを作りたいとします。もし、列挙された項目の数を変更した場合、後でボタンのコードを変更したくありません。

そして、そのenumの値をボタンの名前から取り出して、プログラムに適用する必要があります。enumのすべての項目に対してコードを書く必要はなく、1つのサイクルで簡単に解決したい。

これは、言語だけでなく、他の多くのことに適用できます。

 
同じことをするにも、いろいろな方法がある。
 
Marco vd Heijden:
同じことをするにも、いろいろな方法があるのです。

まあ、少なくとも1つは知っていますよ、使ってますから。

そしてそれは、私たちが話している機能を無用にするものではありません。石で釘を打つことはできますが、常にそうするべきだということではありません。

 
Andrey Barinov:

私は、この方法が役に立つ状況をたくさん知っています。そのため、私は配列でアプローチすることにしています。

1.あなたは、何かの列挙型/リスト(例えば、あなたのプログラムのGUI言語オプション)を持っていて、ユーザーが選択できるように、そのためのラジオボタンを作りたいと思っています。もし、enumの項目数を変更した場合、後でボタンのコードを変更したくありません。

また、プログラムを適用するためには、ボタンの名前からenumの値を取得する必要があります。enumのすべての項目に対してコードを書く必要はなく、1つのサイクルで簡単に解決したい。

これは、言語だけでなく、他の多くのことに適用できます。

アンドレイは知っている。あなたの例では、動的なソリューションが必要なので、enumではなく、arrayを使用しています。もし、動的なもの(あなたの例)にenum(静的)を使いたければ、それは悪いデザインです。私たちは同じことを言っているように思えます。

なぜループさせる必要があるのかが書かれていないので、これ以上OPを助けることはできません。

 
Andrey Barinov:

まあ、少なくとも1つは知っていますよ、使ってますから。

そしてそれは、私たちが話している機能を無用にするものではありません。石で釘を打つことはできますが、常にそうしなければならないということではありません。

Javaでも長い間enum型は存在しなかったし、Javaでは純粋な配列はほとんど使わないので、値のリストを反復するOOの方法は他にたくさんあった。それを石と釘とは言いません。

理由: