Warum muss ich hier casten?

07/01/2009 - 08:21 von Michael Andreas | Report spam
Hi.

Folgende enum-Deklaration
public enum MSG_ID : long
{
TOUCH_IS_NOT_ACTIV = 10000,
TOUCH_IS_EMPTY = 10001,
SQL_SERVER_IS_NOT_ACTIV = 10002
}
und dann switch Bearbeitung (if verhàlt sich genauso)
public Structs.Msg Get_Msg(long ThisMsg_ID)
{
switch (ThisMsg_ID)
{
case (long)Enums.MSG_ID.TOUCH_IS_NOT_ACTIV:
MyMsg.typ = "MsgBox";
break;
}
return MyMsg;
}
}

Meine Frage:
Warum muss ich den enum nochmals casten er ist doch als long bekannt?

Danke Michael
 

Lesen sie die antworten

#1 Frank Dzaebel
07/01/2009 - 08:52 | Warnen spam
Hallo Michael,

Warum muss ich den enum nochmals casten er ist doch als long bekannt?



Nun, es sind zwei verschiedene Typen, für
die keine implizite Typkonvertierung vorliegt.

[enum (C#-Referenz)]
http://msdn.microsoft.com/de-de/lib...t4032.aspx

-> "Beachten Sie, dass, obwohl der Enumeration der
Typ long zugrunde liegt, die Enumerationsmember
noch explizit mithilfe einer Typumwandlung in den
Typ long umgewandelt werden müssen."


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen