¿Por qué usar el método GetOrdinal () del SqlDataReader?

¿Cuál es la diferencia entre leer un valor de un SqlDataReader usando esta sintaxis:

Dim reader As SqlClient.SqlDataReader
reader("value").ToString()

O

Dim reader As SqlClient.SqlDataReader
reader.GetString(reader.GetOrdinal("value"))