public enum BindingFlags { // 摘要: // 不指定绑定标志。 Default = 0, // // 摘要: // 指定当绑定时不应考虑成员名的大小写。 IgnoreCase = 1, // // 摘要: // 指定只应考虑在所提供类型的层次结构级别上声明的成员。 不考虑继承成员。 DeclaredOnly = 2, // // 摘要: // 指定实例成员将包括在搜索中。 Instance = 4, // // 摘要: // 指定静态成员将包括在搜索中。 Static = 8, // // 摘要: // 指定公共成员将包括在搜索中。 Public = 16, // // 摘要: // 指定非公共成员将包括在搜索中。 NonPublic = 32, // // 摘要: // 指定应返回层次结构上的公共静态成员和受保护的静态成员。 不返回继承类中的私有静态成员。 静态成员包括字段、方法、事件和属性。 不返回嵌套类型。 FlattenHierarchy = 64, // // 摘要: // 指定要调用一个方法。 它不能是构造函数或类型初始值设定项。 InvokeMethod = 256, // // 摘要: // 指定“反射”应该创建指定类型的实例。 调用与给定参数匹配的构造函数。 忽略提供的成员名。 如果未指定查找类型,将应用 (Instance |Public)。 // 调用类型初始值设定项是不可能的。 CreateInstance = 512, // // 摘要: // 指定应返回指定字段的值。 GetField = 1024, // // 摘要: // 指定应设置指定字段的值。 SetField = 2048, // // 摘要: // 指定应返回指定属性的值。 GetProperty = 4096, // // 摘要: // 指定应设置指定属性的值。 对于 COM 属性,指定此绑定标志与指定 PutDispProperty 和 PutRefDispProperty 是等效的。 SetProperty = 8192, // // 摘要: // 指定应调用 COM 对象的 PROPPUT 成员。 PROPPUT 指定使用值的属性设置函数。 如果属性同时具有 PROPPUT 和 PROPPUTREF,而且需要区分调用哪一个,请使用 // PutDispProperty。 PutDispProperty = 16384, // // 摘要: // 指定应调用 COM 对象的 PROPPUTREF 成员。 PROPPUTREF 指定使用引用而不是值的属性设置函数。 如果属性同时具有 PROPPUT // 和 PROPPUTREF,而且需要区分调用哪一个,请使用 PutRefDispProperty。 PutRefDispProperty = 32768, // // 摘要: // 指定提供参数的类型必须与对应形参的类型完全匹配。 如果调用方提供一个非空 Binder 对象,则“反射”将引发异常,因为这意味着调用方正在提供的 // BindToXXX 实现将选取适当的方法。 ExactBinding = 65536, // // 摘要: // 未实现。 SuppressChangeType = 131072, // // 摘要: // 返回其参数计数与提供参数的数目匹配的成员集。 此绑定标志用于所带参数具有默认值的方法和带变量参数 (varargs) 的方法。 此标志应只与 System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]) // 一起使用。 OptionalParamBinding = 262144, // // 摘要: // 在 COM 互操作中用于指定可以忽略成员的返回值。 IgnoreReturn = 16777216, }
public enum DataFormType { /// <summary> /// 查找 /// </summary> Search=0, /// <summary> /// 刷新 /// </summary> Refresh=2, /// <summary> /// 增加 /// </summary> Add=4, /// <summary> /// 修改 /// </summary> Update=8, /// <summary> /// 删除 /// </summary> Delete=16, /// <summary> /// 导出 /// </summary> Export=32, /// <summary> /// 导入 /// </summary> Import=64 }
使用
.SetFormType(Fap.Controls.JqGrid.Enums.DataFormType.Add | Fap.Controls.JqGrid.Enums.DataFormType.Delete | Fap.Controls.JqGrid.Enums.DataFormType.Update)
按位或
原理
第一,2的8位二进制值为00000010
4的8位二进制值为00000100
8的8位二进制值为00001000
第二,当对8和4进行按位或操作后,结果为:
4|8 = 12
00000100 |00001000 = 00001100
为什么会是这样呢?在进行按位或操作时 00000001|00000001=00000001 ;00000001|00000000=1 ;00000000|00000000=00000000
也就是说除了0|0结果是0外,其它运算结果的都是1
所以 00000100 |00001000 = 00001100
也就说上面的 purview = k2|k3 的二进制值结果是 purview =00000100 |00001000 =00001100了
第三,当对8和4进行按位与操作后,结果为:
4&8=0
00000100 &00001000 = 00000000
同样为什么会是这样呢?在进行按位与操作时 00000001&00000001=00000001 ;00000001&00000000=00000000 ;00000000&00000000=00000000
也就是说除了1&1结果是1外,其它运算结果的都是0
所以 00000100 &00001000 = 00000000
上面的if((purview & k1) >0)的结果就是 00001100&00000010 =00000000 也就是(0>0)=false
同样if((purview & k2) >0)的结果就是 00001100&00000100 =00000100=4=k2 也就是 (4>0)=true
这样我们就理解组合权限串和判断权限的原理了,说白了就是对2N次方数的按位与和按位或。
相关推荐
3. **位运算**:包括按位与(AND)、按位或(OR)、按位异或(XOR)、按位非(NOT)以及左移()和右移(>>)操作。 4. **长度和填充**:获取位串的长度,以及在位串的末尾添加0或1以达到特定长度。 5. **转换**:将...
2. **或运算符("|"]**:两个数进行逐位或运算,只要对应的二进制位中有1,结果位就为1,否则为0。例如,10与7进行或运算得到15(二进制1111)。 3. **异或运算符("^")**:两个数进行逐位异或运算,相同位为0,...
一种更好的方法是,将一个子系统中所有需要进行权限控制的项组合成一个二进制串,每四个二进制数转化成一个字符(可以是"0","1","2"...."a","b","c","d","e","f"),再保存在表中。这样我们可以算一下,如果一个子...
1. **权限类型**:Linux和Unix采用一个九位的权限字符串表示文件或目录的权限。这分为读(r)、写(w)和执行(x)三种类型。对于文件,执行权限通常适用于可执行文件;对于目录,执行权限允许用户导航进入该目录。 ...
- 当需要判断用户是否有某个特定权限时,可以将该权限的权重值与用户的总权限值进行按位与(`&`)运算。 - 如果结果不为零,则表示用户拥有该权限;反之则无此权限。 - 例如,假设某用户的权限值为7(即1+2+4),...
易语言中的字符串和数组类型可以用来表示这些权限,通过组合不同的权限字符串,可以构建出复杂的权限模式。 2. **权限分配**:分配权限给用户或用户组是权限设置的重要环节。易语言提供了丰富的数据结构,如列表、...
1. **设置串口**:在服务器端,需要配置串口参数,如波特率(常见的有9600、19200、57600等)、数据位(通常为8位)、停止位(通常为1位)和校验位(无校验、奇校验或偶校验)。这些参数需要与客户端一致,以确保...
6. **数据库权限控制**:在ASP+Access的组合中,除了在应用程序层面控制权限,还可以在数据库级别设置权限。Access数据库允许为用户或用户组设置读、写、修改和删除数据的权限,进一步加强了安全性。 7. **错误处理...
串口通信涉及到的主要参数包括波特率(例如9600、19200等)、数据位(5、6、7、8位)、停止位(1或2位)和校验位(无、奇、偶、标记、空间)。 二、VC与串口编程 在VC中,我们主要使用Windows API函数来处理串口...
其中,“privileges”可以是一个或多个权限的组合,用逗号分隔;“database_name”和“object_name”分别表示数据库名和对象名(可以是表名或其他数据库对象);“username”和“host”则分别表示用户名和允许连接的...
- `number`:用2的幂次表示不同的权限,便于通过位运算进行权限组合。 - `remark`:备注字段,用于记录权限的详细说明,如"read"、"write"等。 2. **资源列表表(resource)** - `resource_id`:主键,资源的...
可以使用位AND运算来检查特定权限是否存在:`If (权限码 AND (1 )) = 0 Then`,这里的`(1 )`是左移运算,相当于将1移动n位,用于设置或检查特定位置的位。 幂运算在权限系统中也起着关键作用。在VB中,`^`符号用于...
- **dwDesiredAccess**:访问类型,可以是`GENERIC_READ`(读取)、`GENERIC_WRITE`(写入)或两者的组合。 - **dwShareMode**:对于串口来说,此参数必须为0。 - **lpSecurityAttributes**:安全属性结构指针,通常...
6. **错误处理**:在尝试打开端口时,可能会遇到权限问题或其他错误,因此需要适当的错误处理机制,例如捕获异常并显示错误消息。 7. **关闭串口**:在扫描完成后,确保所有的串口都被正确关闭,以释放资源。 这个...
6. **权限问题**:如果程序没有足够的权限访问或读取选定的文件,可能会导致组合框无法显示文件名。确保程序有适当的文件访问权限。 7. **控件限制**:某些情况下,如果组合框的大小不足以显示整个文件名,也可能看...
例如,要打开一个名为"COM1"的串口,你可以设置`lpFileName`参数为"COM1",`dwDesiredAccess`参数可以是`GENERIC_READ`、`GENERIC_WRITE`或者两者的组合,以确定你对串口的访问权限。`CreateFile`返回的句柄将在后续...
- 如果需要实现类似“只有自己或者自己的上级领导可以修改”的场景,可以设置`owner`权限+`role`权限或者`user`限制的组合。 3. **角色权限(role)**: 需要根据角色名称来设置权限,而不是直接使用角色ID。 4. **...
用户可以输入或输入一串24位RGB值,例如"FF0000"代表纯红色,该工具会将其转换为16位等效值,如"f800",这在16位色彩模式下最接近原色。这个转换过程涉及到对每个颜色通道的位数进行裁剪和调整,以适应16位的限制。 ...
1. **物理访问**:如果设备有物理访问权限,可以直接连接到设备的控制台端口(Console Port),使用串行线和终端仿真器(如SecureCRT或Putty)建立连接,然后进入设备的命令行界面(CLI)进行配置。 2. **默认IP查找...