Вот какой код, который беспокоит меня каждый раз, когда я думаю об этом.
Option Strict On
Module Module1
Sub Main()
For Each i As Integer In New String() {"why", "is", "this", "tolerated?"}
' compiles just fine.
Next
End Sub
End Module
С# просто не разрешает преобразовывать строки в целые числа неявно.
class Program {
static void Main(string[] args) {
foreach (int i in new string[] {"that's", "better"}) {
// will not compile, and for good reason.
}
}
}
Почему VB позволяет нам это делать? Я пытаюсь получить удовольствие от этого, потому что я все еще относительно новичок, но мне также очень любопытно. Я уверен, что там есть разработчики с ответом.