For i As Integer = 1 To 10 Dim j As Integer = 10 Next
Теперь мой вопрос: выделяется ли память для j каждый раз, когда она выполняется внутри цикла for?или на последующих итерациях присваивается только значение 10?
Нет, она объявляется один раз для каждой функции и сбрасывает каждую итерацию цикла.
То же, что и этот вопрос: Использует ли один из них больше ресурсов, чем другой?
Из MSDN:
Даже если область действия переменной ограничена блоком, время ее жизни остается тем же, что и для всей процедуры.Если вы вводите блок более одного раза во время процедуры, каждая переменная блока сохраняет свое предыдущее значение.Чтобы избежать неожиданных результатов в таком случае, целесообразно инициализировать переменные блока в начале блока.
Эта статья может вам помочь (область действия переменной и время жизни) http://msdn.microsoft.com/en-us/library/1t0wsc67.aspx