MQL4/MQL5에서 열거형 및 항목의 길이를 얻는 방법은 무엇입니까? - 페이지 3

 
Andrey Barinov :

아니요, 열거형 대신 배열을 사용하는 것은 잘못된 디자인입니다.

예: 문자열 값이 있다고 상상해 보십시오. 그리고 작업은 이 문자열이 같거나 열거 항목 이름(EnumToString()) 중 하나를 포함하는지 확인하는 것입니다.

어떻게 해결하시겠습니까?

그러한 것이 필요한 실제 상황을 제공할 수 있습니까? 열거형은 상수일 뿐입니다. 항목 내에서 문자열을 식별하려는 이유는 무엇입니까?
 
Alain Verleyen :
그러한 것이 필요한 실제 상황을 제공할 수 있습니까? 열거형은 상수일 뿐입니다. 항목 내에서 문자열을 식별하려는 이유는 무엇입니까?
 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 :
그러한 것이 필요한 실제 상황을 제공할 수 있습니까? 열거형은 상수일 뿐입니다. 항목 내에서 문자열을 식별하려는 이유는 무엇입니까?
내 질문은 하나의 예에 불과했습니다. 토픽 스타터는 다른 하나를 설명했습니다. 나는 그것들이 당신에게 충분히 "실제"가 아니며 모든 사람이 해결 방법을 사용할 수 있다는 것을 이해하지만 이것이 문제를 해결하는 사람들에게 이러한 작업을 현실적이지 않게 만들지는 않습니다.
 
Andrey Barinov :
내 질문은 하나의 예에 불과했습니다. 토픽 스타터는 다른 하나를 설명했습니다. 나는 그것들이 당신에게 충분히 "실제"가 아니며 모든 사람이 해결 방법을 사용할 수 있다는 것을 이해하지만 이것이 문제를 해결하는 사람들에게 이러한 작업을 현실적이지 않게 만들지는 않습니다.
그리고 우리는 여전히 여기에 갇혀 있습니다. 해결책은 실제 문제에 대해서만 찾을 수 있습니다. OP의 진짜 문제를 알고 있습니까? 나는 아니에요.
 
나도 .. 그리고 나는 지금 그에게 여러 번 물었다.
 
Alain Verleyen :
그리고 우리는 여전히 여기에 갇혀 있습니다. 해결책은 실제 문제에 대해서만 찾을 수 있습니다. OP의 진짜 문제를 알고 있습니까? 나는 아니에요.

나는 이것이 도움이 될 많은 실제 상황을 알고 있습니다. 이것이 다른 방법이 없기 때문에 배열에 접근 방식을 사용하는 이유입니다.

예: 무언가의 열거형/목록이 있고(프로그램에 대한 GUI 언어 옵션이라고 가정해 봅시다) 사용자가 선택할 수 있도록 라디오 버튼을 만들고 싶습니다. 열거형의 항목 수를 변경하는 경우 나중에 버튼 코드를 변경하고 싶지 않습니다.

그리고 프로그램에 적용할 버튼 이름에서 열거형 값을 검색해야 합니다. 열거형의 모든 항목에 대한 코드를 작성하고 싶지 않고 주기 내에서 간단한 솔루션을 원합니다.

이것은 언어뿐만 아니라 다른 많은 것들에도 적용될 수 있습니다:

 
많은 방법이 같은 일을 하는 것입니다.
 
Marco vd Heijden :
많은 방법이 같은 일을 하는 것입니다.

글쎄, 나는 그것을 사용하기 때문에 적어도 하나는 알고 있습니다.

그리고 그것은 우리가 말하는 기능을 쓸모없게 만들지 않습니다. 못을 돌로 두드릴 수는 있지만 항상 해야 한다는 의미는 아닙니다.

 
Andrey Barinov :

나는 이것이 도움이 될 많은 실제 상황을 알고 있습니다. 이것이 다른 방법이 없기 때문에 배열에 접근 방식을 사용하는 이유입니다.

1. 무언가의 열거/목록이 있고(프로그램에 대한 GUI 언어 옵션이라고 하자) 사용자가 선택할 수 있도록 라디오 버튼을 만들고 싶습니다. 열거형의 항목 수를 변경하는 경우 나중에 버튼 코드를 변경하고 싶지 않습니다.

그리고 프로그램을 적용하려면 버튼 이름에서 해당 열거형 값을 검색해야 합니다. 열거형의 모든 항목에 대한 코드를 작성하고 싶지 않고 주기 내에서 간단한 솔루션을 원합니다.

이것은 언어뿐만 아니라 다른 많은 것들에도 적용될 수 있습니다:

안드레이를 알아요. 귀하의 예제에는 동적 솔루션이 필요하므로 enum이 아닌 array를 사용하십시오. 동적(귀하의 예)에 대해 열거형(정적)을 사용하려는 경우 잘못된 디자인입니다. 우리도 같은 말을 하고 있는 것 같습니다.

그가 실제로 루프가 필요한 이유를 말하지 않기 때문에 우리는 OP를 더 이상 도울 수 없습니다.

 
Andrey Barinov :

글쎄, 나는 그것을 사용하기 때문에 적어도 하나는 알고 있습니다.

그리고 그것은 우리가 말하는 기능을 쓸모없게 만들지 않습니다. 못을 돌로 두드릴 수는 있지만 항상 해야 한다는 의미는 아닙니다.

Java 언어조차도 아주 오랫동안 어떤 열거형도 없이 존재했고 Java는 순수 배열을 거의 사용하지 않기 때문에 값 목록을 반복하는 다른 OO 방법이 많이 있었습니다. 나는 그것을 돌과 못이라고 부르지 않을 것이다.

사유: