c# - 无法转换 C#

标签 c# .net casting

我的解决方案中有 2 个不同的项目。

在一个中,我有一个名为 MyClass1 的类,在另一个中,我有一个名为 MyClass2 的类 这些类除名称外完全相同。

在一个项目中,我有一个对象列表。在运行时,列表中充满了 MyClass1 对象 我们转换到一个对象。

最后,我想将列表中的每个对象都转换为 MyClass2 对象。

目前它抛出一个异常,提示无法将 MyClass1 类型的对象转换为 MyClass2。

我的代码:

List<Object> _tempObjects = new List<Objects>();
foreach(Object myObjectInput in _tempObjects)
{
  MyClass2 temp = (MyClass2) myObjectInput; // here is where it dies
}

这两个类是一样的,只是名字不同而已。 我也试过:

 MyClass2 temp = myObjectInput as MyClass2; 

最佳答案

你想做的事是不可能的。即使这些类具有相同的内容,它们仍然是不同的类型。

你可以做的是:

  • 为这两种类型共享的所有事物创建一个接口(interface)
  • 让您的 2 种类型实现该接口(interface)
  • 当你从列表中取出对象时转换到这个接口(interface)

关于c# - 无法转换 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26103256/

相关文章:

c# - 将列表对象传递给 C# Web Api POST

c# - 如何使用 VSIX 扩展实现控制台应用程序

php - 类型转换为 boolean 值

Swift:使用 as/as 进行转换有什么区别?/as!关键字和 C 风格的转换?

c# - 为什么 excel 保持打开状态?

c# - 在 C# 中,使用 tick 比较两个日期和按原样比较两个日期有什么区别

c# - DynamicMethod 性能低下

c# - 在浏览器中流式传输 Pdf 时如何设置文件名?

SQL:如何在查询中使用 case 和 cast?

c# - 如何将托管对象的地址传递给非托管事件处理程序?