考虑下面的代码 -
FileInfo fileInfo = new FileInfo("C:\\doesNotExist.txt");
Console.WriteLine(fileInfo.Attributes);
Console.WriteLine(fileInfo.Attributes.HasFlag(FileAttributes.ReadOnly));
根据文档,枚举的默认基础类型是int,而值为 -1 的 int 基本上是二进制的全 1 。因为,FileAttributes 允许其成员值的按位组合(如此处所述),为什么 FileAttributes 的默认值是 -1,因为这意味着不存在的文件拥有所有可能的 FileAttributes(上面的代码第三个打印True线)