Como obter o comprimento do enumero e item em MQL4/MQL5 ? - página 3

 
Andrey Barinov:

Não, usar um array em vez de enumerar é um projeto ruim.

Exemplo: Imagine que você tem um valor de string. E a tarefa é descobrir se esta string é igual/contém um dos nomes dos itens da enumeração (EnumToString()).

Como você resolveria isto?

Você pode fornecer uma situação real onde tal coisa é necessária? Enum são apenas constantes, por que você quer identificar um fio dentro dos itens ?
 
Alain Verleyen:
Você pode fornecer uma situação real onde tal coisa é necessária? Enum são apenas constantes, por que você quer identificar um fio dentro dos itens?
 enum hedge
  {
   AUD=0,//Australian Dollar
   CAD=1,//Canadian Dollar
   CHF=2,//Swiss Franc
   JPY=3,//Japan Yen
   EUR=4,//European Euro
  };

Se você quiser construir uma estrutura de cobertura.

Mas então eu simplesmente comparo tudo para descobrir o valor real.

sinput hedge C1=2;// Hedge Currency 

if(C1=="CAD")
 {
  //Do Something
 }
 
Alain Verleyen:
Você pode fornecer uma situação real onde tal coisa é necessária? Enum são apenas constantes, por que você quer identificar um fio dentro dos itens ?
Minha pergunta foi apenas um exemplo. O tópico inicial descreveu outro. Entendo que eles não são "reais" o suficiente para você e todos podem usar soluções, mas isto não torna estas tarefas não reais para as pessoas que as estão resolvendo.
 
Andrey Barinov:
Minha pergunta foi apenas um exemplo. O tópico inicial descreveu outro. Entendo que eles não são "reais" o suficiente para você e todos podem usar soluções, mas isto não torna estas tarefas não reais para as pessoas que as estão resolvendo.
E nós ainda estamos presos aqui... Uma solução só pode ser encontrada para um problema real. Você conhece o problema real da OP ? Eu não conheço.
 
Eu tampouco... e já lhe perguntei várias vezes.
 
Alain Verleyen:
E ainda estamos presos aqui... Uma solução só pode ser encontrada para um problema real. Você conhece o verdadeiro problema da OP ? Eu não conheço.

Conheço MUITAS situações reais quando isso seria útil. É por isso que utilizo a abordagem com arrays, porque não há outra maneira.

Exemplo: Você tem uma enumeração/lista de algo (digamos GUI Opções de linguagem para seu programa), e você quer construir botões de rádio para ele, para o usuário escolher. Você NÃO DESEJA mudar o código dos botões mais tarde, se você mudar o número de itens em seu enumero.

E você precisa recuperar esse valor de enumeração a partir do nome do botão para aplicar ao seu programa. Você NÃO DESEJA escrever o código para TODOS os itens de seu enumero, você quer uma solução simples dentro de um ciclo

Isto pode ser aplicado não apenas aos idiomas, mas a MUITAS outras coisas:

 
Há muitas maneiras de fazer as mesmas coisas.
 
Marco vd Heijden:
Muitas maneiras são fazer as mesmas coisas.

Bem, eu conheço pelo menos um, porque estou usando-o.

E isso não torna inútil a característica de que estamos falando. Você pode martelar um prego com uma pedra, mas isso não significa que você deve sempre fazê-lo.

 
Andrey Barinov:

Conheço MUITAS situações reais quando isso seria útil. É por isso que utilizo a abordagem com arrays, porque não há outra maneira.

1. Você tem um enum/lista de algo (digamos GUI Opções de linguagem para seu programa), e você quer construir botões de rádio para ele, para que o usuário escolha. Você NÃO DESEJA mudar o código dos botões mais tarde, se você mudar o número de itens em seu enumero.

E você precisa recuperar esse valor de enumeração a partir do nome do botão para aplicar seu programa. Você NÃO DESEJA escrever o código para TODOS os itens de seu enumero, você quer uma solução simples dentro de um ciclo

Isto pode ser aplicado não apenas aos idiomas, mas a MUITAS outras coisas:

Eu conheço Andrey. Seu exemplo precisa de uma solução dinâmica, por isso você não usa enumeração, mas matriz. Se você quer usar enum (estático) para algo que é dinâmico (seu exemplo), é um projeto ruim. Parece-me que estamos dizendo o mesmo.

Não podemos ajudar mais o OP, pois ele não diz por que realmente precisa de um loop.

 
Andrey Barinov:

Bem, eu conheço pelo menos um, porque estou usando-o.

E isso não torna inútil a característica de que estamos falando. Você pode martelar um prego com uma pedra, mas isso não significa que você deve sempre fazê-lo.

Mesmo a linguagem Java existiu sem QUALQUER tipo de enumeração por muito tempo, e como o Java usa arrays puros raramente, havia muitas outras maneiras OO de como iterar uma lista de valores. Eu não o chamaria de uma pedra e um prego.