C#中使用的〜字符是什么

时间:2009-12-10 16:15:49

标签: c#

我今天遇到了这段代码:

File.SetAttributes(excelFileName, File.GetAttributes(excelFileName) & ~
                   (FileAttributes.Archive | FileAttributes.ReadOnly));

之前从未见过。有人知道吗?

3 个答案:

答案 0 :(得分:13)

http://msdn.microsoft.com/en-us/library/d2bd4x66.aspx

〜运算符对其操作数执行按位补码运算,这会使每个位反转。对于int,uint,long和ulong,预定义了按位补码运算符。

答案 1 :(得分:9)

  

“C#中使用的〜字符是什么”

有关信息,也使用〜(在不同的上下文中)来表示析构函数/终结符:

class Person {
    public Person() {...} // constructor
    ~Person() {...} // destructor
}

请注意,您很少需要析构函数;通常只有当您的直接类型包装非托管资源(操作系统句柄等)时才会使用。

答案 2 :(得分:1)

您看到的一个地方通常是种子初始化:

Random randomGen = new Random(~(int)DateTime.Now.Ticks);
Random otherGen = new Random((int)DateTime.Now.Ticks);

即使这些大致出现在相同的“滴答声”中,也会播种两种不同的种子。