我正在尝试使用 C# 8.0 中的新可空引用类型。但是我遇到了一个小问题:
foreach(FileSystemAccessRule rule in directorySecurity.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount)))
{
// do something with rule
}
这里显示了一个警告,因为编译器认为rule
可能是null
,但实际上它永远不会是。
我目前的解决方法是:
foreach(FileSystemAccessRule? rule in directorySecurity.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount)))
{
if (rule == null) continue;
// do something with rule
}
但如果有一个类似于[NeverNull]FileSystemAccessRule rule
这样的修复方法,我会更加高兴。是否有办法实现这一点?
GetAccessRules
方法的实际实现吗?你可以使用空值忽略运算符!
来轻松修复它,例如rule!
。 - Pavel Anikhouski