object
anを型に変換しようとしていますが、 and型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の問題だと思います。