我收到编译错误
[错误1(PE114)类型“ConsoleApplication.MyEnum的数组[0..1]”用于“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.
答案 0 :(得分:0)
MyEnum在哪里定义?我很确定无论在哪里,它都没有标记为公共(如错误消息所示),但它保留在默认可见性(在.NET中是私有的)。
然后RRUZ在他的评论中是正确的,你应该避免全局声明。 Oxygene编译器需要创建一个(不可见的,自动生成的)类,其中包含此类作为静态(类)成员,因为.NET不允许全局声明,因此您应该首先“正确”执行它。