OVH Cloud OVH Cloud

Problème de type avec enum

1 réponse
Avatar
Fabian Vilers
Bonjour à tous, voici mon problème du jour avec un enum de type byte. J'ai
une erreur à la compil: Cannot implicitly convert type
'MyNamespace.DataMessage.CodeType' to 'byte'. Pourtant, je définit bien nom
enum en byte.

Une idée?


Class DataMessage
--------------------
public class DataMessage
{
byte mCode;

public enum CodeType : byte
{
LogonChallenge = 0x00,
}

public DataMessage(string dataStr)
{
mCode = (byte) dataStr[0];
}

public byte Code
{
get { return(mCode); }
}
}

Code ou ca coince
--------------------
private void Parse(DataMessage dataMsg)
{
switch(dataMsg.Code)
{
case DataMessage.CodeType.LogonChallenge: // <- erreur à la compil

messageLog.Write("Authenfication asked");
break;
default:
messageLog.Write("Unimplemented code");
break;
}
}

1 réponse

Avatar
Guillaume Davion
On ne passe pas d'une énum à son type sous-jacent et inversement sans
un cast explicit.
De fait, ici cela doit donner quelque chose comme
switch((CodeType)dataMsg.code)