Por que o Integer.TryParse define o resultado como zero em caso de falha?

Meu entendimento da função Integer.TryParse () era que ele tentava analisar um inteiro da cadeia passada e, se a análise falhasse, o inteiro resultado permaneceria como antes.

Eu tenho um inteiro com um valor padrão de -1 que gostaria de permanecer em -1 se a análise falhar. No entanto, a função Integer.TryParse () ao falhar na análise está alterando esse valor padrão para zero.

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

Minha expectativa é que o snippet de código acima deve gerar:

defaultValue -1
parseSuccess False

No entanto, ele gera:

defaultValue 0
parseSuccess False

Meu entendimento é correto?

questionAnswers(2)

yourAnswerToTheQuestion