System.InvalidCastException: Unable to cast object of type
Bin ich immer die folgende Fehlermeldung:
Unable to cast object of type 'Holo.Virtuellen.Zimmer.Bots.virtualBot' to type 'Holo.Virtuellen.Zimmer.Bots.virtualRoomBot'.
Hier ist mein code:
foreach (virtualRoomBot roomBot in _Bots.Values) //Exception thrown here
{
if (roomBot.goalX == -1)
continue;
Holo.Virtuellen.Zimmer.Bots.virtualBot enthält:
public class virtualBot
{
public virtualBot(int botID)
{
DataRow dRow;
using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient())
{
dRow = dbClient.getRow("SELECT * FROM roombots WHERE id = '" + botID + "'");
}
*There are values for the db here*
}
}
Und Holo.Virtuellen.Zimmer.Bots.virtualRoomBot enthält:
public class virtualRoomBot
{
internal virtualRoomBot(int botID, int roomID, int roomUID,
virtualBot Bot, virtualRoomBotStatusManager statusManager)
{
this.botID = botID;
this.roomID = roomID;
this.roomUID = roomUID;
this.Bot = Bot;
this.statusManager = statusManager;
}
virtualBot
undvirtualRoomBot
sind zwei unterschiedliche und nicht Verwandte Arten. Sie können nicht direkt cast von einem zum anderen. Wenn_Bots.Values
enthält eine Sammlung von Objekten des TypsvirtualBot
dann können Sie nicht behandeln Sie wie eine Sammlung von Objekten des TypsvirtualRoomBot
, was Sie zu tun versuchen. Darüber hinaus ist unklar, was es ist Sie versuchen zu tun, oder wo Sie_Bots.Values
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
_Bots.Values
ist eine Sammlung vonvirtualBot
und Ihr code sollteBlick auf diese code:
Dieser code oben wird "Unable to cast object of type 'A' Typ 'B'." Das gleiche geschieht auf Ihrer Stichprobe von code.
wenn Sie instanziieren ein
virtualBot
können Sie nicht nur gegossen, es zuvirtualRoomBot
.Sollten Sie einer Klasse Erben, die anderen. Dann tun Sie, wirft Sie in die Richtung, dass zeige ich in den folgenden code:
Sollte dies funktioniert. Hoffe, es hilft.
Beste Grüße