Pregunta

Can't get my head around this one. I have a method defined like this:

Sub M1(searchText As String, companyFilter As Integer?)
    ...
    'Check the value of companyFilter HERE                                          <<<<
    ...
End Sub

I'm calling it like this:

 M1(txtSearch.Text, If(cbo.SelectedIndex = 0, Nothing, cbo.SelectedValue))

cbo.SelectedIndex is 0. What do you expect the value of companyFilter to be at the highlighted line? Nothing? So do I. But to my surprise the value is 0. What's going on?

¿Fue útil?

Solución

If I recall correctly, VB.NET (like C#) assumes the expression should be of cbo.SelectedValue’s type. Try casting it to a Nullable:

M1(txtSearch.text,
    If(cbo.SelectedIndex = 0, Nothing, New Integer?(cbo.SelectedValue))

(… that works, right? Sorry. It’s been a while.) And make sure to have Option Strict On.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top