¿Por qué Integer.TryParse establece el resultado en cero en caso de error?

Mi comprensión de la función Integer.TryParse () era que intentaba analizar un entero de la cadena pasada y, si el análisis fallaba, el entero del resultado se mantendría como lo hacía antes.

Tengo un entero con un valor predeterminado de -1 que me gustaría mantener en -1 si el análisis falla. Sin embargo, la función Integer.TryParse () al no analizar se está cambiando este valor predeterminado a cero.

Dim defaultValue As Integer = -1
Dim parseSuccess As Boolean = Integer.TryParse("", defaultValue)
Debug.Print("defaultValue {0}", defaultValue)
Debug.Print("parseSuccess {0}", parseSuccess)

Mi expectativa es que el fragmento de código anterior debería dar salida:

defaultValue -1
parseSuccess False

Sin embargo, en cambio, produce:

defaultValue 0
parseSuccess False

¿Mi entendimiento es correcto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta