Я определенно искал это, но не могу найти ответ, хотя это кажется таким тривиальным.
У меня в ASP.NET есть переменная, которая возвращает строку.
string[] arrayOfThings { get { return new string[] { ... } } }
И у меня есть вызов в ASP
Dim someString
For Each someString In someClass.arrayOfThings
# Do Something with someString
Next
Это не работает. Возвращает исключение «несоответствие типов».
Когда я пытаюсь отладить, IsArray (someClass.arrayOfThings) возвращает True, но у него нет ни Count, ни атрибутов, ни ничего. UBound (someClass.arrayOfThings) равен 0, чего я и ожидал, поскольку в нем всего 1 элемент. Однако я не могу сослаться на элемент с помощью someClass.arrayOfThings (0)
Я новичок в ASP, но не могу понять, что я делаю не так. Я бы так хотел, чтобы ASP был строго набран.
Редактировать: я попытался создать массив с тем же значением и сравнить его с тем, что я получаю из arrayOfThings, и в окне отладчика они выглядят одинаково, но в одном случае я могу пройти по нему, а в другом - не могу .
Просто к вашему сведению, в настоящее время у меня это работает так:
У меня в ASP.NET есть переменная, которая возвращает строку.
string arrayOfThings { get { return String.Join(",", new string[] { ... }) } }
А потом в ASP
Dim someString
For Each someString In Split(someClass.arrayOfThings, ",")
# Do Something with someString
Next
И это работает.