Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法从源类型强制转换为目标类型_C#_Polymorphism_Downcast - Fatal编程技术网

C# 无法从源类型强制转换为目标类型

C# 无法从源类型强制转换为目标类型,c#,polymorphism,downcast,C#,Polymorphism,Downcast,我正在Unity中编写一个游戏,我试图使用多态性访问2个子类,但不断出现错误: 无法从源类型强制转换为目标类型 我有一个序列化的位置列表,我试图向下转换到一个属性,它是Place的一个子类。我怎样才能团结一致呢 ((Property)Board.GetBoardPlace(Players[PlayerTurn].Position)).Owner = Players[PlayerTurn]; 如果类型类型列表中的项最初使用基类位置实例化,那么,至少在C语言这样的托管语言中不能考虑重新设计,或者在

我正在Unity中编写一个游戏,我试图使用多态性访问2个子类,但不断出现错误:

无法从源类型强制转换为目标类型

我有一个序列化的位置列表,我试图向下转换到一个属性,它是Place的一个子类。我怎样才能团结一致呢

((Property)Board.GetBoardPlace(Players[PlayerTurn].Position)).Owner = Players[PlayerTurn];

如果类型类型列表中的项最初使用基类位置实例化,那么,至少在C语言这样的托管语言中不能考虑重新设计,或者在填充列表时实例化为类型属性的项:

列表位置=新列表; 地点。新增物业; 然后,您可以在需要使用它们时将其强制转换为类型属性:

Property属性=将[0]放置为属性; 如果是属性!=空的{ //转换成功 }
你可以在这本书里读到更多。希望这有帮助!如果您有任何问题,请告诉我。

对于您在代码中所做的工作,可能不需要强制转换。你能分享更多的代码和/或演员阵容的原因吗?而且,这不是一个真正的统一性问题,所以我将删除该标记,并将其标记为C…问题是这些项会被丢弃在编辑器中。尽管这些项是Property类型的,但在代码中没有我实例化它们的地方。如果是在代码中使用。。。新属性我想我会很好,但因为我正试图从编辑器中删除一个动态板,所以没有办法做到这一点。我认为在编辑器中拖动属性类型是等效的,但事实并非如此。