grid1.Columns[1].AutoSizeMode = SourceGrid.AutoSizeMode.EnableAutoSize|SourceGrid.AutoSizeMode.EnableStretch;在一个控件源码中,看到这么一句代码。
请问其中的“|”符号代表什么意思?

解决方案 »

  1.   

    刚好我在看以前的帖子 里面有说:
    http://topic.csdn.net/u/20091203/21/7ff9b26c-f7c5-4784-a707-21a0e6b5fd2d.html
      

  2.   

    SourceGrid.AutoSizeMode.EnableAutoSize|SourceGrid.AutoSizeMode.EnableStretch; 
    位标记或运算。
    比如
    SourceGrid.AutoSizeMode.EnableAutoSize 是0001
    SourceGrid.AutoSizeMode.EnableStretch  是1000那么
    SourceGrid.AutoSizeMode.EnableAutoSize|SourceGrid.AutoSizeMode.EnableStretch = 1001
    代表启用这两种标记所代表的某种属性功能
      

  3.   

    逻辑或。。
    LZ没写过C吧..举个C的例子
    状态A 001
    状态B 010
    这样又要A又要B的状态就是 A|B 就是011了。。
      

  4.   

    这里的字面含义是“和”的意思,利用的是“按位或运算”特征,详见:http://msdn.microsoft.com/zh-cn/library/system.flagsattribute%28VS.80%29.aspx
      

  5.   

    二进制的:01001001 | 10100100 = 11101101
    对应十制制的:73 | 164 = 237
    有的属性用很多位来表示,每一位表示一个特性,如果为1表示特性的性质为True,为0表示为False,你那个控件就是这样弄的。
      

  6.   

    看个示例:
    [FlagsAttribute] 
    enum C : short
        {
            Black = 0,
            Red = 1,
            Green = 2,
            Blue = 4
        };
    [FlagsAttribute]指示可以将枚举作为位域(即一组标志)处理
    测试一下:
            C c = C.Red | C.Green;
            Console.WriteLine(c);//输出Red,Green        int x = (int)c;
            Console.WriteLine(x);//输出3
    作为位域处理意思就是按位组合,
    比如C c=7的时候,会自动对照枚举按位变组合成7=1+2+4,对应的ToString就是Red,Green,Blue
    当C c=6的时候,寻找到枚举中值为2,4的组合,对应的ToSTring就是Green,Blue