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]);
    }
Exemple #2
0
    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]);
    }
Exemple #3
0
    //   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);
    }