#asp.net #vb.net #integer #nullable
#asp.net #vb.net #целое #nullable
Вопрос:
У меня есть этот код:
Dim iwidth As Integer? = 125
Dim iheight As Integer? = 45
Recs.Add(New With {Key .URLSmallPic = "/EditorImage/BBM4.jpg", Key .URL = "#", Key .Width = iwidth, Key .Height = iheight})
Recs — это переменная списка.
Третий и четвертый параметры имеют значение с нулевым значением (целого числа).
Как создать единственную строку кода, не объявляя переменные iwidth и iheight?
Комментарии:
1. Мой вопрос в том, почему вы вообще используете анонимный тип там? Почему вы не объявляете определенный тип для этой цели?
2. @jmcilhinney, спасибо за ваш ответ. Я хочу добавить пользовательскую строку в результат моего запроса Linq.
3. Ваш запрос LINQ создает экземпляры определенного типа или анонимный тип? Если вы хотите иметь возможность создавать экземпляры одного и того же типа двумя разными способами, тогда это должен быть определенный именованный тип.
4. Проблема была решена вашим ответом @jmcilhinney. Большое вам спасибо……
Ответ №1:
Чтобы ответить на ваш вопрос, как было задано:
Recs.Add(New With {Key .URLSmallPic = "/EditorImage/BBM4.jpg",
Key .URL = "#",
Key .Width = New Nullable(Of Integer)(125),
Key .Height = New Nullable(Of Integer)(45)})
Комментарии:
1. Если указано. Ширина определяется как значение с нулевым значением, вам действительно нужно это сделать
New Nullable(Of Integer)(125)
или вы можете просто сделать125
?2. @Программист, нет такой вещи, как
Recs.Width
. Прочитайте вопрос еще раз.Recs
являетсяList
— предположительноList(Of Object)
. Код создает экземпляр анонимного типа и добавляет его к немуList
. Типы данных свойств этого анонимного типа выводятся из предоставленных значений, поэтому, если вы хотите, чтобыWidth
иHeight
были типомInteger?
, вы должны предоставить значения этого типа. Если вы укажетеInteger
, то тип данных свойства также будетInteger
.3. Ах, моя ошибка, но вопрос все еще остается в силе. Если бы вы попытались передать 125 и прочитать его как nullable, сработало бы это, или это автоконверсия, которая была бы предотвращена параметром Strict?
4. Я думаю, это зависит от кода, который считывает данные. Я все еще не совсем понимаю, подходит ли здесь анонимный тип вообще, что также сделало бы вопрос спорным. Я ответил на вопрос, который был задан, независимо от того, был ли это ошибочный вопрос в первую очередь.
5. Да, у них определенно должен быть тип, это было скорее мое любопытство, так как я не часто использую nullables, и вы, возможно, лучший человек, чтобы спросить. Спасибо 🙂