我今天遇到了这段代码:
File.SetAttributes(excelFileName, File.GetAttributes(excelFileName) & ~
(FileAttributes.Archive | FileAttributes.ReadOnly));
之前从未见过。有人知道吗?
答案 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);
即使这些大致出现在相同的“滴答声”中,也会播种两种不同的种子。