myType.GetProperties(BindingFlags.Public|BindingFlags.Instance) 参数中的|什么意思?为什么可以这样加?
解决方案 »
- 关于小说阅读器的问题
- treeView数据填充问题
- 自动下载器
- [急切求助].C文件、.H文件或.CS文件如何转换成HTML格式?
- a b = new c(); 这么写有什么好处
- FTP批量下载问题
- 有没有人能知道我做一下用C#做计算器 然后后写项目报告的 我的QQ是331638432 谁会救教我一下
- 如何作出一个有几个面板切换的窗体??不想用子窗体,因为同时只应该有一个窗体。
- for循环中delegate的问题
- 问大家一下, 以前学的 window编程 对学习 . net framework 有没有帮助?
- 关于C#中的基类到子类的类型转换
- 要用c#做个报表设计器,麻烦各位提供资料或者想法,意见!
public enum BindingFlags : uint
{
Instance = 1,//值是1, 二进制: 00000001...
Public = 2 //值是2, 二进制: 00000010...
}BindingFlags result = BindingFlags.Instance | BindingFlags.Public; //结果等于3, 二进制00000011Console.WriteLine(((int)result).ToString()); //输出结果...
然后, Type.GetProperties(BindingFlags)方法的内部就可以直接利用&(与运算)来判断, 此次搜索条件是什么...其实, 它在方法内部是做了如下类似的判断...请参考如下代码:
if ((result & BindingFlags.Instance) == BindingFlags.Instance)
{
Console.WriteLine("执行实例成员的搜索");
}if ((result & BindingFlags.Public) == BindingFlags.Public)
{
Console.WriteLine("执行公共成员的搜索");
}/*1.*/BindingFlags result1 = BindingFlags.Instance | BindingFlags.Public;
/*2.*/BindingFlags result2 = BindingFlags.Instance;
/*3.*/BindingFlags result3 = BindingFlags.Public;综合以上代码. 分别测试一下这三种组合的结果吧...您就会明白...^o^
public指反射,但找到的属性/特性是public公开访问的
Instance 只是找到实例的引用对象,类似c++中的实例句柄指针(当然这个是枚举类型)