我一直认为他们的可见性只限于类,除非类型被引用类类型名称,如TMyClass.TMytype.Value;
我在这里做的事情真的错了,如下结构:
unit MyTest; interface type TMyTest = class constructor Create; strict private type TMyType = ( NUL,SLEEP ); end; implementation // ...
导致使用此(MyTest)单元的其他单元中的冲突.
如果单位有睡眠(100);调用,它将与TMyTest.TMyType.SLEEP冲突和预防冲突是为什么我首先将SLEEP封装在类和TMyType之中.
任何建议的解决方法?
解决方法
您可以通过包含scoped enums指令来安排枚举值具有本地范围:
{$ScopEDENUMS ON}
The
$ScopEDENUMS
directive enables or disables the use of scoped enumerations in Delphi code. More specifically,$ScopEDENUMS
affects only deFinitions of new enumerations,and only controls the addition of the enumeration’s value symbols to the global scope.In the
{$ScopEDENUMS ON}
state,enumerations are scoped,and enum values are not added to the global scope. To specify a member of a scoped enum,you must include the type of the enum.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。