تبدیل int به نوع enum و برعکس
فرض کدی مانند حالت زیر داریم :
int InputOfAction = ...; if(InputOfAction == 0) DoSomeThing(); else if(InputOfAction == 1) DoSomeThing(); else if(InputOfAction == 2) DoSomeThing(); ...
که در آن InputOfAction را از ورودی کاربر می گیریم.
حال اگر بخواهیم که بجای اعداد از واحد با مفهوم یا enum استفاده کنیم چه ؟!
این موضوع علرغم افزایش خوانایی کد، باعث حرفه ای تر شدن کد شما و توسعه راحت تر هم میشود.
پس اینجا ما نیاز به تبدیل نوع int ورودی به enum داریم !
لذا پس بجای اعداد 0، 1 و 2 در ظرط های بالا از حالت enum به این صورت استفاده میکنیم.
enum myActions {
ValueIsZero = 0,
valueIsone = 1,
ValueIsTwo = 2,
...
}
و شرط بالا نیز به این حالت باید تغییر کند :
int InputOfAction = ...; myActions acts = (myActions)InputOfAction; if(act == myActions.ValueIsZero) DoSomeThing(); else if(act == myActions.ValueIsOne) DoSomeThing(); else if(act == myActions.ValueIsTwo) DoSomeThing();
همچنین برای حالت برعکس این موضوع یعنی تبدیل enum به int از Casting ساده زیر استفاده میشود:
myActions my = myActions.ValueIsOne; int ConvertedVal = int(my);