C# C中的~字符是用来做什么的#

C# C中的~字符是用来做什么的#,c#,C#,我今天遇到了这段代码: File.SetAttributes(excelFileName, File.GetAttributes(excelFileName) & ~ (FileAttributes.Archive | FileAttributes.ReadOnly)); 以前从没见过。有人知道吗? ~运算符对其操作数执行逐位补码运算,其效果是反转每一位。按位补码运算符是为int、uint、long和ulong预定义的 “C#中使用的~字符是什么?

我今天遇到了这段代码:

File.SetAttributes(excelFileName, File.GetAttributes(excelFileName) & ~
                   (FileAttributes.Archive | FileAttributes.ReadOnly));
以前从没见过。有人知道吗?

~运算符对其操作数执行逐位补码运算,其效果是反转每一位。按位补码运算符是为int、uint、long和ulong预定义的

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

对于info,~还用于(在不同的上下文中)表示析构函数/终结器:

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

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

您通常会在种子初始化中看到这一点:

Random randomGen = new Random(~(int)DateTime.Now.Ticks);
Random otherGen = new Random((int)DateTime.Now.Ticks);
即使这些大致发生在同一个“蜱虫”中,它们也会被播种两种不同的种子