2011-11-03 41 views
0

的恆定界陣列I得到一個編譯錯誤德爾福棱鏡,如何聲明枚舉

[錯誤1(PE114)鍵入「陣列[0..1] ConsoleApplication.MyEnum的」從類型「ConsoleApplication使用。 「必須是公開的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中是私有的)。

然後RRUZ在他的評論中是正確的,你應該避免全局聲明。 Oxygene編譯器需要創建一個包含靜態(類)成員的(不可見的,自動生成的)類,無論如何因爲.NET不允許全局聲明,所以你應該首先做它'正確'。