c# - "X"类型的对象无法转换为 "X"类型的对象

标签 c# visual-studio winforms

(不敢相信这还没有被问到,但我找不到复制品)

在有很多项目的 Visual Studio 中,当我第一次打开解决方案时,有时会收到警告 Object of type "X"cannot be converted to object of type "X"。一般重建似乎让它消失,但有谁知道这是由什么引起的,以及如何避免它?

更新 我在某处读到删除所有 resx 文件并重建会有帮助。我不假思索地尝试了这个。不是个好主意...

最佳答案

这实际上取决于具体情况(含糊不清),但最可能的原因是不同的程序集引用/版本。也许您有一些“顶级”代码引用了 dll 的版本“A”,并引用了一个库,该库引用了类似 dll 的版本“B”;然后:

SomeType foo = someObj.Foo;

将有来自“A”的SomeType(在左侧),.Foo 来自“B”的SomeType。尝试确保您的所有项目都使用您所依赖的所有程序集的相同版本。

另一种情况是在不同的命名空间中使用相同的名称,但这种情况有点明显,我怀疑错误消息会使这种情况变得明显?

还有一些其他场景,在同一个命名空间(但不同的程序集)中具有相同名称的类型相互冲突;这里“外部别名”可以提供帮助,但它是一个完整的 PITA 可以使用。

关于c# - "X"类型的对象无法转换为 "X"类型的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2115593/

相关文章:

c# - 如果单击 "... Read more "as.net c#,则链接到完整文章

c++ - Qt Phonon MediaObject 转换错误

.net - 在 VS2010 中的 Post Build 事件中将 bin 文件复制到物理文件位置

c# - 一个接一个改变标签的颜色

当我声明与 lambda 中的变量同名的变量时,C# 变得疯狂

c# - 创建动态公式

c# - 将文件附加到 iCalendar

visual-studio - Visual Studio 2015 : Lines in text editor

C# 判断表单是否最大化

c# - 如何设置组合框默认值?