2011-11-03 1 views
0

의 일정한 경계 배열을 선언하는 방법을 내가 컴파일 오류를 얻을델파이 프리즘은 열거

[오류 1 (PE114) 입력 유형 "ConsoleApplication에서 사용되는"[0..1] ConsoleApplication.MyEnum의 배열 ". " 공공 D해야합니다 : \ PrismProjects \ ConsoleApplication \ ConsoleApplication \ Program.pas (14) (42) ConsoleApplication]

나는 다음과 같은 코드를 컴파일하려고 :

namespace ConsoleApplication; 

interface 

type 
    ConsoleApp = class 
    public 
     class method Main(args: array of string); 
    end; 

    MyEnum = (F, T); 

const 
    EnumOfBool: array[boolean] of MyEnum = [MyEnum.F, MyEnum.T]; 

implementation 

    class method ConsoleApp.Main(args: array of string); 
    begin 
    Console.WriteLine('Hello World.'); 
    end; 
end. 
+1

게시하는 코드에서이 오류가 발생하지 않으면 실제 코드를 게시 해보십시오. 또한 'EnumOfBool' 배열에 대한 선언은 정확하지만 Delphi Prism이 허용하는 경우에도 전역 멤버를 사용하지 않도록하십시오. – RRUZ

답변

0

MyEnum이 정의를? 나는 그것이 어디에 있든 그것이 (에러 메시지가 제시하는 것처럼) public으로 표시되지 않지만, (.NET에서 private 인) 디폴트 가시성에 남아 있음을 확신한다.

RRUZ은 주석에서 옳은 것으로 전역 선언을 피하십시오. .NET은 전역 선언을 허용하지 않기 때문에 Oxygene 컴파일러는 이것을 정적 (클래스) 멤버로 포함하는 (보이지 않는 자동 생성 된) 클래스를 생성해야하므로 처음부터 '올바르게'수행해야합니다.