public override T GetFieldValue()

in MySQL.Data/src/MySqlDataReader.cs [1171:1220]


    public override T GetFieldValue<T>(int ordinal)
    {
      if (typeof(T).Equals(typeof(Stream)))
        return (T)(object)GetStream(ordinal);
      if (typeof(T).Equals(typeof(sbyte)))
        return (T)(object)GetSByte(ordinal);
      if (typeof(T).Equals(typeof(byte)))
        return (T)(object)GetByte(ordinal);
      if (typeof(T).Equals(typeof(short)))
        return (T)(object)GetInt16(ordinal);
      if (typeof(T).Equals(typeof(ushort)))
        return (T)(object)GetUInt16(ordinal);
      if (typeof(T).Equals(typeof(int)))
        return (T)(object)GetInt32(ordinal);
      if (typeof(T).Equals(typeof(uint)))
        return (T)(object)GetUInt32(ordinal);
      if (typeof(T).Equals(typeof(long)))
        return (T)(object)GetInt64(ordinal);
      if (typeof(T).Equals(typeof(ulong)))
        return (T)(object)GetUInt64(ordinal);
      if (typeof(T).Equals(typeof(char)))
        return (T)(object)GetChar(ordinal);
      if (typeof(T).Equals(typeof(decimal)))
        return (T)(object)GetDecimal(ordinal);
      if (typeof(T).Equals(typeof(float)))
        return (T)(object)GetFloat(ordinal);
      if (typeof(T).Equals(typeof(double)))
        return (T)(object)GetDouble(ordinal);
      if (typeof(T).Equals(typeof(string)))
        return (T)(object)GetString(ordinal);
      if (typeof(T).Equals(typeof(Guid)))
        return (T)(object)GetGuid(ordinal);
      if (typeof(T).Equals(typeof(bool)))
        return (T)(object)GetBoolean(ordinal);
      if (typeof(T).Equals(typeof(DateTime)))
        return (T)(object)GetDateTime(ordinal);
      if (typeof(T).Equals(typeof(TimeSpan)))
        return (T)(object)GetTimeSpan(ordinal);
      if (typeof(T).Equals(typeof(MySqlGeometry)))
        return (T)(object)GetMySqlGeometry(ordinal);
      if (typeof(T).Equals(typeof(DateTimeOffset)))
      {
        var dtValue = new DateTime();
        var result = DateTime.TryParse(this.GetValue(ordinal).ToString(), out dtValue);
        DateTime datetime = result ? dtValue : DateTime.MinValue;
        return (T)Convert.ChangeType(new DateTimeOffset(datetime, TimeSpan.FromHours(0)), typeof(T));
      }

      return base.GetFieldValue<T>(ordinal);
    }