Opc.Ua.Com.ComUtils.GetSystemType C# (CSharp) Method

GetSystemType() public static method

Converts the VARTYPE to a SystemType
public static GetSystemType ( short input ) : Type
input short
return System.Type
		public static Type GetSystemType(short input)
		{				
			bool isArray = (((short)VarEnum.VT_ARRAY & input) != 0);
            VarEnum varType = (VarEnum)Enum.ToObject(typeof(VarEnum), (input & ~(short)VarEnum.VT_ARRAY));

            if (!isArray)
            {
			    switch (varType)
			    {
				    case VarEnum.VT_I1:      return typeof(sbyte);
				    case VarEnum.VT_UI1:     return typeof(byte);
				    case VarEnum.VT_I2:      return typeof(short);
				    case VarEnum.VT_UI2:     return typeof(ushort);
				    case VarEnum.VT_I4:      return typeof(int);
				    case VarEnum.VT_UI4:     return typeof(uint);
				    case VarEnum.VT_I8:      return typeof(long);
				    case VarEnum.VT_UI8:     return typeof(ulong);
				    case VarEnum.VT_R4:      return typeof(float);
				    case VarEnum.VT_R8:      return typeof(double);
				    case VarEnum.VT_BOOL:    return typeof(bool);
				    case VarEnum.VT_DATE:    return typeof(DateTime);
				    case VarEnum.VT_BSTR:    return typeof(string);
				    case VarEnum.VT_CY:      return typeof(decimal);
				    case VarEnum.VT_EMPTY:   return typeof(object);
				    case VarEnum.VT_VARIANT: return typeof(object);
			    }
            }
            else
            {
			    switch (varType)
			    {
				    case VarEnum.VT_I1:      return typeof(sbyte[]);
				    case VarEnum.VT_UI1:     return typeof(byte[]);
				    case VarEnum.VT_I2:      return typeof(short[]);
				    case VarEnum.VT_UI2:     return typeof(ushort[]);
				    case VarEnum.VT_I4:      return typeof(int[]);
				    case VarEnum.VT_UI4:     return typeof(uint[]);
				    case VarEnum.VT_I8:      return typeof(long[]);
				    case VarEnum.VT_UI8:     return typeof(ulong[]);
				    case VarEnum.VT_R4:      return typeof(float[]);
				    case VarEnum.VT_R8:      return typeof(double[]);
				    case VarEnum.VT_BOOL:    return typeof(bool[]);
				    case VarEnum.VT_DATE:    return typeof(DateTime[]);
				    case VarEnum.VT_BSTR:    return typeof(string[]);
				    case VarEnum.VT_CY:      return typeof(decimal[]);
				    case VarEnum.VT_EMPTY:   return typeof(object[]);
				    case VarEnum.VT_VARIANT: return typeof(object[]);
			    }
            }

			return null;
		}