我正在尝试将 an 转换object
为bool
类型并想要转换bool
和Nullable<bool>
类型。我还想确保我尽可能做出适当的演员表。所以我有以下代码:
if (value is bool)
{
boolValue = (bool) value;
}
else if (value is bool? && ((bool?)value).HasValue)
{
boolValue = ((bool?) value).Value;
}
else
{
throw new ArgumentException("Value must be a boolean type");
}
ReSharper 2016 告诉我,value is bool?
在这个 if 语句堆栈中,它总是会评估为 false。这是为什么?这意味着它Nullable<bool>
不会继承自object
(不可能)或value is bool
将捕获一个bool?
.
ReSharper 2016 也可能存在错误。我看到的实现System.Windows.Controls.BooleanToVisibilityConverter.Convert
几乎相同。我怀疑 WPF 核心会出现这样的错误,这让我相信这是 ReSharper 的问题。