00001
00002
00003
00004
00005
00006 namespace NewGamePhysics.Utilities
00007 {
00008 using System;
00009
00013 public class EnumConvert
00014 {
00022 public static T ChangeTo<T>(object value)
00023 {
00024 Type type = typeof(T);
00025 if (!type.IsGenericType && type.IsEnum)
00026 {
00027 try
00028 {
00029 if (value.GetType().IsValueType)
00030 {
00031 return (T)Enum.ToObject(type, value);
00032 }
00033 else
00034 {
00035 return (T)Enum.Parse(type, value.ToString());
00036 }
00037 }
00038 catch
00039 {
00040 return default(T);
00041 }
00042 }
00043 else
00044 {
00045 try
00046 {
00047 return (T)Convert.ChangeType(value, type);
00048 }
00049 catch
00050 {
00051 return default(T);
00052 }
00053 }
00054 }
00055 }
00056 }