次のようなインターフェイスを実装するクラスがあります。
public class Database : IStore
別のクラスには、次のメンバー変数があります。データベースのインスタンスは、実行時に動的に割り当てられます。
private IStore store;
次のようにストア変数の型チェックを行うメソッド:
if (store is Database)
ReSharper は、条件が常に false になると主張しています。また、「データベースとして保存」は常にnullになると主張しています。何故ですか?このインターフェイス型メンバーが保持する実行時オブジェクト型を確認する最善の方法は何ですか? これは常に「真実ではないかもしれない」と言っているだけなのか、それとも「決して真実ではない」と本当に言っているのでしょうか?