2016-10-19 3 views
0

У меня есть этот код:Передача обнуляемого (целочисленный) к югу или функциям

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 является переменным списком. Третий и четвертый параметр: NULL (целое число). Как сделать одиночную строку кода без объявления переменной iwidth и iheight?

+0

Мой вопрос, почему вы используете анонимный тип там вообще? Почему вы не объявляете конкретный тип для этой цели? – jmcilhinney

+0

@jmcilhinney, благодарю вас за ваш ответ. Я хочу добавить пользовательскую строку в результат запроса Linq. –

+0

Выполняет ли запрос LINQ экземпляры определенного типа или анонимного типа? Если вы хотите иметь возможность создавать экземпляры одного и того же типа двумя разными способами, то это должен быть определенный именованный тип. – 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)}) 
+0

Если Recs.Width определено как nullable, вам действительно нужно выполнить 'New Nullable (Of Integer) (125)' или вы можете просто сделать '125'? –

+0

@ProGrammer, нет такой вещи, как 'Recs.Width'. Прочтите вопрос еще раз. 'Recs' - это' List' - предположительно «List (Of Object)». Код создает экземпляр анонимного типа и добавляет его в этот «Список». Типы данных свойств этого анонимного типа выводятся из приведенных значений, поэтому, если вы хотите, чтобы 'Width' и' Height' были типа 'Integer? ', Тогда вы должны указать значения этого типа. Если вы предоставите «Integer», тогда тип данных свойства будет также «Integer». – jmcilhinney

+0

Ahh моя ошибка, но вопрос все еще стоит. Если вы попытались передать 125 и считать его нулевым, будет ли это работать, или это автоконверсия, которая будет предотвращена опцией Strict? –