public static string ToString_GarbageSafe(this System.Enum eEnum) { System.Type pType = eEnum.GetType(); if (g_mapEnumToString.ContainsKey(pType) == false) { g_mapEnumToString.Add(pType, new CDictionary_ForEnumKey <System.Enum, string>()); } CDictionary_ForEnumKey <System.Enum, string> mapEnumToString = g_mapEnumToString[pType]; if (mapEnumToString.ContainsKey(eEnum) == false) { mapEnumToString.Add(eEnum, System.Enum.GetName(pType, eEnum)); } return(mapEnumToString[eEnum]); }
public static string ToString_GarbageSafe <ENUM>(ENUM eEnum) where ENUM : struct { int iHashCode = eEnum.GetHashCode(); System.Type pType = eEnum.GetType(); if (g_mapEnumToString_ForGeneric.ContainsKey(pType) == false) { g_mapEnumToString_ForGeneric.Add(pType, new CDictionary_ForEnumKey <int, string>()); } CDictionary_ForEnumKey <int, string> mapEnumToString = g_mapEnumToString_ForGeneric[pType]; if (mapEnumToString.ContainsKey(iHashCode) == false) { mapEnumToString.Add(iHashCode, System.Enum.GetName(pType, eEnum)); } return(mapEnumToString[iHashCode]); }
// public void DoAddState(ENUM_STATE eState, EventDelegate.Callback OnStartState, EventDelegate.Callback OnUpdateState) // { // _mapCallBackOnStart.Add(eState, OnStartState); // _mapCallBackOnUpdate.Add(eState, OnUpdateState); //} public void DoChangeState(ENUM_STATE eState) { _eStatePrev = _eStateCurrent; _eStateCurrent = eState; if (p_EVENT_OnChangeState != null) { p_EVENT_OnChangeState(eState); } if (_mapCallBackOnStart.ContainsKey(eState)) { _mapCallBackOnStart[eState](); } //if (_mapCallBackOnUpdate.ContainsKey(eState)) // _mapCallBackOnUpdate[eState](); //_bUpdateCallExist = _mapCallBackOnUpdate.ContainsKey(eState); }