Jaka jest różnica między Convert.ToInt32 i (int)?

Poniższy kod generuje błąd czasu kompilacji

Nie można przekonwertować typu „string” na „int”

string name = Session["name1"].ToString();
int i = (int)name;

mając na uwadze, że poniższy kod kompiluje się i wykonuje pomyślnie:

string name = Session["name1"].ToString();
int i = Convert.ToInt32(name);

Chciałbym wiedzieć:

Dlaczego pierwszy kod generuje błąd kompilacji?

Jaka jest różnica między 2 fragmentami kodu?

questionAnswers(11)

yourAnswerToTheQuestion