C# 和 ReSharper : Checking an object's type

标签 c# interface resharper instanceof implements

我有一个实现接口(interface)的类,如下所示:

public class Database : IStore

在另一个类中,我有以下成员变量;并且数据库实例在运行时动态分配给它:

private IStore store;

以及一个对存储变量进行类型检查的方法,如下所示:

if (store is Database)

ReSharper 声称条件始终为假。此外,它声称“存储为数据库”将始终为空。这是为什么?检查此接口(interface)类型成员持有的运行时对象类型的最佳方法是什么?它可能只是说这“可能不是真的”总是还是真的“永远不会”?

最佳答案

这听起来像是 R# 被混淆了,或者您有两种不同的 IStore 类型,而您正在针对一种类型进行测试,而实际上该类实现了一种不同的类型一。 (或者两种不同的 Database 类型,当然。可能性是等价的。)

您能否提供一个简短但完整的示例来说明问题?如果您将鼠标悬停在带有 as/is 运算符的代码中的 IStoreDatabase 上,它是否显示完整的- 您期望的限定类型名称?如果您运行代码,它会进入 if 主体吗?

关于C# 和 ReSharper : Checking an object's type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12286226/

相关文章:

c# - 用 0 到 9 的数字填充字符串并开始新的直到长度为 50

c# - Visual Studio 快速操作和重构问题

javascript - $http 调用 Web API 2 不传递参数

c# - Resharper- 查找所有未使用的类

c# - Automapper 表达式错误 : Null Reference/Error Mapping Types and ReverseMap

go - 一段任意结构的接口(interface)用作函数参数(golang)

java - 在接口(interface)中嵌套类在哪里有用?

angular - 如何连接 Output() 和 Input() 装饰器?

visual-studio - 使用 Resharper 导航到实际源

visual-studio - Visual Studio 2015 是否具有等效于 CTRL+T 快速对象查找的 Resharper?