【发布时间】:2014-04-06 10:39:36
【问题描述】:
是否可以在 C# 中将基类对象数组显式转换为其派生类对象数组之一?我有从 A 类派生的 C 类,我正在尝试将基类对象数组转换为派生类对象数组,但它返回一个空值。
public interface I
{
public string Name;
public string Id;
}
public class A
{
public string name;
public string id;
}
public class B: A,I
{
public string Name
{
get { return name; }
set{name= value;}
}
public string Id
{
get { return id; }
set{id= value;}
}
}
A[] baseClassList= GetValues();
B[] derivedClassList= baseClassList as B[];---THIS IS RETURNING NULL
我该如何解决这个问题?任何帮助表示赞赏。
【问题讨论】:
-
B在哪里?A和B之间没有关系 -
现在已修复。对不起。
-
几个澄清问题,您提到了一个根本不在您的代码中的派生类 C,是拼写错误还是其他什么?您是要转换数组还是转换数组中的每个元素?
-
对象的底层类型是从
GetValues()返回的B类型吗?
标签: c# inheritance casting