static int _m_GetTypeCode(RealStatePtr L) { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); System.Enum __cl_gen_to_be_invoked = (System.Enum)translator.FastGetCSObj(L, 1); try { { System.TypeCode __cl_gen_ret = __cl_gen_to_be_invoked.GetTypeCode( ); translator.Push(L, __cl_gen_ret); return(1); } } catch (System.Exception __gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e)); } }
public static object ToEnumsNumericType(System.Enum e) { if (e == null) { return(null); } switch (e.GetTypeCode()) { case System.TypeCode.SByte: return(System.Convert.ToSByte(e)); case System.TypeCode.Byte: return(System.Convert.ToByte(e)); case System.TypeCode.Int16: return(System.Convert.ToInt16(e)); case System.TypeCode.UInt16: return(System.Convert.ToUInt16(e)); case System.TypeCode.Int32: return(System.Convert.ToInt32(e)); case System.TypeCode.UInt32: return(System.Convert.ToUInt32(e)); case System.TypeCode.Int64: return(System.Convert.ToInt64(e)); case System.TypeCode.UInt64: return(System.Convert.ToUInt64(e)); default: return(null); } }
public static bool Contains(this System.Enum e, System.Enum value) { if (e.GetType() != value.GetType()) { throw new System.ArgumentException("Type mismatch"); } var typeCode = e.GetTypeCode(); switch (typeCode) { case System.TypeCode.SByte: return((System.Convert.ToSByte(e) & System.Convert.ToSByte(value)) != 0); case System.TypeCode.Int16: return((System.Convert.ToInt16(e) & System.Convert.ToInt16(value)) != 0); case System.TypeCode.Int32: return((System.Convert.ToInt32(e) & System.Convert.ToInt32(value)) != 0); case System.TypeCode.Int64: return((System.Convert.ToInt64(e) & System.Convert.ToInt64(value)) != 0); case System.TypeCode.Byte: return((System.Convert.ToByte(e) & System.Convert.ToByte(value)) != 0); case System.TypeCode.UInt16: return((System.Convert.ToUInt16(e) & System.Convert.ToUInt16(value)) != 0); case System.TypeCode.UInt32: return((System.Convert.ToUInt32(e) & System.Convert.ToUInt32(value)) != 0); case System.TypeCode.UInt64: return((System.Convert.ToUInt64(e) & System.Convert.ToUInt64(value)) != 0); } throw new System.InvalidOperationException(string.Format("The comparison of the type {0} is not implemented.", e.GetType().Name)); }
public static IEnumerable <System.Enum> GetFlags(System.Enum e) { if (e == null) { throw new System.ArgumentNullException("e"); } var tp = e.GetType(); ulong max = 0; foreach (var en in System.Enum.GetValues(tp)) { ulong v = System.Convert.ToUInt64(en); if (v > max) { max = v; } } int loops = (int)System.Math.Log(max, 2) + 1; ulong ie = System.Convert.ToUInt64(e); for (int i = 0; i < loops; i++) { ulong j = (ulong)System.Math.Pow(2, i); if ((ie & j) != 0) { var js = ToEnumsNumericType(j, e.GetTypeCode()); if (System.Enum.IsDefined(tp, js)) { yield return((System.Enum)System.Enum.Parse(tp, js.ToString())); } } } }
/** Convert */ public static JsonItem Convert(System.Object a_from_object, ConvertToJsonItemOption a_from_option) { if ((a_from_option & ConvertToJsonItemOption.EnumString) > 0) { //enumの文字列化。 string t_value = a_from_object.ToString(); if (t_value != null) { return(new JsonItem(new Value_StringData(t_value))); } else { //NULL処理。 return(null); } } else { //enumの数値化。 System.Enum t_enum = (System.Enum)a_from_object; if (t_enum != null) { #pragma warning disable 0162 switch (t_enum.GetTypeCode()) { case System.TypeCode.Byte: { return(new JsonItem(new Value_Number <System.Byte>((System.Byte)a_from_object))); } break; case System.TypeCode.SByte: { return(new JsonItem(new Value_Number <System.SByte>((System.SByte)a_from_object))); } break; case System.TypeCode.Int16: { return(new JsonItem(new Value_Number <System.Int16>((System.Int16)a_from_object))); } break; case System.TypeCode.UInt16: { return(new JsonItem(new Value_Number <System.UInt16>((System.UInt16)a_from_object))); } break; case System.TypeCode.Int32: { return(new JsonItem(new Value_Number <System.Int32>((System.Int32)a_from_object))); } break; case System.TypeCode.UInt32: { return(new JsonItem(new Value_Number <System.UInt32>((System.UInt32)a_from_object))); } break; case System.TypeCode.Int64: { return(new JsonItem(new Value_Number <System.Int64>((System.Int64)a_from_object))); } break; case System.TypeCode.UInt64: { return(new JsonItem(new Value_Number <System.UInt64>((System.UInt64)a_from_object))); } break; default: { #if (DEF_BLUEBACK_JSONITEM_ASSERT) DebugTool.Assert(false); #endif return(null); } break; } #pragma warning restore } else { #if (DEF_BLUEBACK_JSONITEM_ASSERT) DebugTool.Assert(false); #endif return(null); } } }
/** Convert */ public static void Convert(ref System.Object a_to_refobject, System.Type a_to_type, JsonItem a_from_jsonitem) { #pragma warning disable 0162 switch (a_to_type.FullName) { case "System." + nameof(System.Char): { a_to_refobject = a_from_jsonitem.CastToChar(); return; } break; case "System." + nameof(System.SByte): { a_to_refobject = a_from_jsonitem.CastToSbyte(); return; } break; case "System." + nameof(System.Byte): { a_to_refobject = a_from_jsonitem.CastToByte(); return; } break; case "System." + nameof(System.Int16): { a_to_refobject = a_from_jsonitem.CastToInt16(); return; } break; case "System." + nameof(System.UInt16): { a_to_refobject = a_from_jsonitem.CastToUint16(); return; } break; case "System." + nameof(System.Int32): { a_to_refobject = a_from_jsonitem.CastToInt32(); return; } break; case "System." + nameof(System.UInt32): { a_to_refobject = a_from_jsonitem.CastToUint32(); return; } break; case "System." + nameof(System.Int64): { a_to_refobject = a_from_jsonitem.CastToInt64(); return; } break; case "System." + nameof(System.UInt64): { a_to_refobject = a_from_jsonitem.CastToUint64(); return; } break; case "System." + nameof(System.Single): { a_to_refobject = a_from_jsonitem.CastToSingle(); return; } break; case "System." + nameof(System.Double): { a_to_refobject = a_from_jsonitem.CastToDouble(); return; } break; case "System." + nameof(System.Boolean): { a_to_refobject = a_from_jsonitem.CastToBoolData(); return; } break; case "System." + nameof(System.Decimal): { a_to_refobject = a_from_jsonitem.CastToDecimal(); return; } break; case "System." + nameof(System.String): { switch (a_from_jsonitem.GetValueType()) { case ValueType.SignedNumber: { a_to_refobject = a_from_jsonitem.GetSignedNumber().ToString(); return; } break; case ValueType.UnsignedNumber: { a_to_refobject = a_from_jsonitem.GetUnsignedNumber().ToString(); return; } break; case ValueType.FloatingNumber: { a_to_refobject = a_from_jsonitem.GetFloatingNumber().ToString(); return; } break; case ValueType.DecimalNumber: { a_to_refobject = a_from_jsonitem.GetDecimalNumber().ToString(); return; } break; case ValueType.BoolData: { a_to_refobject = a_from_jsonitem.GetBoolData().ToString(); return; } break; default: { //失敗。 #if (DEF_BLUEBACK_JSONITEM_ASSERT) DebugTool.Assert(false); #endif return; } break; } } break; default: { if (a_to_type.IsEnum == true) { System.Enum t_enum = (System.Enum)a_to_refobject; if (t_enum != null) { switch (t_enum.GetTypeCode()) { case System.TypeCode.Byte: { a_to_refobject = System.Enum.ToObject(a_to_type, a_from_jsonitem.CastToByte()); return; } break; case System.TypeCode.SByte: { a_to_refobject = System.Enum.ToObject(a_to_type, a_from_jsonitem.CastToSbyte()); return; } break; case System.TypeCode.Int16: { a_to_refobject = System.Enum.ToObject(a_to_type, a_from_jsonitem.CastToInt16()); return; } break; case System.TypeCode.UInt16: { a_to_refobject = System.Enum.ToObject(a_to_type, a_from_jsonitem.CastToUint16()); return; } break; case System.TypeCode.Int32: { a_to_refobject = System.Enum.ToObject(a_to_type, a_from_jsonitem.CastToInt32()); return; } break; case System.TypeCode.UInt32: { a_to_refobject = System.Enum.ToObject(a_to_type, a_from_jsonitem.CastToUint32()); return; } break; case System.TypeCode.Int64: { a_to_refobject = System.Enum.ToObject(a_to_type, a_from_jsonitem.CastToInt64()); return; } break; case System.TypeCode.UInt64: { a_to_refobject = System.Enum.ToObject(a_to_type, a_from_jsonitem.CastToUint64()); return; } break; default: { //失敗。 #if (DEF_BLUEBACK_JSONITEM_ASSERT) DebugTool.Assert(false); #endif return; } break; } } else { //失敗。 #if (DEF_BLUEBACK_JSONITEM_ASSERT) DebugTool.Assert(false); #endif return; } } else { //失敗。 #if (DEF_BLUEBACK_JSONITEM_ASSERT) DebugTool.Assert(false); #endif return; } } break; } #pragma warning restore }
/** Convert */ public static JsonItem Convert(System.Object a_from_object, ConvertToJsonItemOption a_from_option) { if ((a_from_option & ConvertToJsonItemOption.EnumString) > 0) { //enumの文字列化。 string t_value = a_from_object.ToString(); if (t_value != null) { return(new JsonItem(new Value_StringData(t_value))); } else { //NULL処理。 return(null); } } else { //enumの数値化。 System.Enum t_enum = (System.Enum)a_from_object; if (t_enum != null) { switch (t_enum.GetTypeCode()) { case System.TypeCode.Byte: { return(new JsonItem(new Value_Number <System.Byte>((System.Byte)a_from_object))); } break; case System.TypeCode.SByte: { return(new JsonItem(new Value_Number <System.SByte>((System.SByte)a_from_object))); } break; case System.TypeCode.Int16: { return(new JsonItem(new Value_Number <System.Int16>((System.Int16)a_from_object))); } break; case System.TypeCode.UInt16: { return(new JsonItem(new Value_Number <System.UInt16>((System.UInt16)a_from_object))); } break; case System.TypeCode.Int32: { return(new JsonItem(new Value_Number <System.Int32>((System.Int32)a_from_object))); } break; case System.TypeCode.UInt32: { return(new JsonItem(new Value_Number <System.UInt32>((System.UInt32)a_from_object))); } break; case System.TypeCode.Int64: { return(new JsonItem(new Value_Number <System.Int64>((System.Int64)a_from_object))); } break; case System.TypeCode.UInt64: { return(new JsonItem(new Value_Number <System.UInt64>((System.UInt64)a_from_object))); } break; default: { Tool.Assert(false); } break; } } } //失敗。 Tool.Assert(false); return(null); }
/** Convert */ public static void Convert(ref System.Object a_to_ref_object, System.Type a_to_type, JsonItem a_from_jsonitem) { try{ switch (a_to_type.FullName) { case "System." + nameof(System.Char): { a_to_ref_object = a_from_jsonitem.CastToChar(); return; } break; case "System." + nameof(System.SByte): { a_to_ref_object = a_from_jsonitem.CastToSbyte(); return; } break; case "System." + nameof(System.Byte): { a_to_ref_object = a_from_jsonitem.CastToByte(); return; } break; case "System." + nameof(System.Int16): { a_to_ref_object = a_from_jsonitem.CastToInt16(); return; } break; case "System." + nameof(System.UInt16): { a_to_ref_object = a_from_jsonitem.CastToUint16(); return; } break; case "System." + nameof(System.Int32): { a_to_ref_object = a_from_jsonitem.CastToInt32(); return; } break; case "System." + nameof(System.UInt32): { a_to_ref_object = a_from_jsonitem.CastToUint32(); return; } break; case "System." + nameof(System.Int64): { a_to_ref_object = a_from_jsonitem.CastToInt64(); return; } break; case "System." + nameof(System.UInt64): { a_to_ref_object = a_from_jsonitem.CastToUint64(); return; } break; case "System." + nameof(System.Single): { a_to_ref_object = a_from_jsonitem.CastToSingle(); return; } break; case "System." + nameof(System.Double): { a_to_ref_object = a_from_jsonitem.CastToDouble(); return; } break; case "System." + nameof(System.Boolean): { a_to_ref_object = a_from_jsonitem.CastToBoolData(); return; } break; case "System." + nameof(System.Decimal): { a_to_ref_object = a_from_jsonitem.CastToDecimal(); return; } break; default: { if (a_to_type.IsEnum == true) { System.Enum t_enum = (System.Enum)a_to_ref_object; if (t_enum != null) { switch (t_enum.GetTypeCode()) { case System.TypeCode.Byte: { a_to_ref_object = System.Enum.ToObject(a_to_type, a_from_jsonitem.CastToByte()); return; } break; case System.TypeCode.SByte: { a_to_ref_object = System.Enum.ToObject(a_to_type, a_from_jsonitem.CastToSbyte()); return; } break; case System.TypeCode.Int16: { a_to_ref_object = System.Enum.ToObject(a_to_type, a_from_jsonitem.CastToInt16()); return; } break; case System.TypeCode.UInt16: { a_to_ref_object = System.Enum.ToObject(a_to_type, a_from_jsonitem.CastToUint16()); return; } break; case System.TypeCode.Int32: { a_to_ref_object = System.Enum.ToObject(a_to_type, a_from_jsonitem.CastToInt32()); return; } break; case System.TypeCode.UInt32: { a_to_ref_object = System.Enum.ToObject(a_to_type, a_from_jsonitem.CastToUint32()); return; } break; case System.TypeCode.Int64: { a_to_ref_object = System.Enum.ToObject(a_to_type, a_from_jsonitem.CastToInt64()); return; } break; case System.TypeCode.UInt64: { a_to_ref_object = System.Enum.ToObject(a_to_type, a_from_jsonitem.CastToUint64()); return; } break; } } } } break; } }catch (System.Exception t_exception) { Tool.DebugReThrow(t_exception); } //失敗。 Tool.Assert(false); }