您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

“ |”是什么 以“ int样式= SWT.APPLICATION_MODAL | SWT.OK;” (以及如何使用Google)?

“ |”是什么 以“ int样式= SWT.APPLICATION_MODAL | SWT.OK;” (以及如何使用Google)?

在这种情况下,管道运算符的意思是“将SWT.APPLICATION_MODAL和SWT.OK都用作我的弹出框的选项/标志。” 这是非常常用的习惯用法,带有位域配置标识符,特别是。在SWT或Win32之类的窗口系统中。

管道( )运算符是按位或运算符,即,它计算两个二进制整数值的或运算。如果检查出定义了APPLICATION_MODAL和OK的位置,则会发现它们类似于以下内容

...
SWT.OK = 1,                  // 00000001 in binary
SWT.ABORT_RETRY_IGNORE = 2,  // 00000010 in binary
SWT.OK_CANCEL = 4;           // 00000100 in binary
...
SWT.APPLICATION_MODAL = 32;  // 00100000 in binary
... (and so on...)

当将这些数字中的两个(或多个)按位或时,将为每个选项设置单独的位:

int style = SWT.OK | SWT.APPLICATION_MODAL = 00000001 | 00100000 = 00100001

解释样式的窗口工具箱将能够通过按位执行AND来准确地告诉您您想要的内容一个弹出框,该弹出框是Modal并具有一个OK按钮):

...
if(style & SWT.OK)
{
    // we want an OK @R_740_2419@
}
if(style & SWT.ABORT_RETRY_IGNORE)
{
    // we want an Abort/Retry/Ignore @R_740_2419@
}
if(style & SWT.OK_CANCEL)
{
    // we want an OK/Cancel @R_740_2419@
}
...
if(style & SWT.APPLICATION_MODAL)
{
    // We want a modal @R_740_2419@
}
...

以我的拙见,金达很聪明。它允许您在单个变量中选择/表示多个配置选项。诀窍在于选项的整数定义,并确保它们仅是2的幂。

Go 2022/1/1 18:27:41 有388人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶