我正在向子程序传递各种对象以运行相同的过程,但每次使用不同的对象。例如,在一个情况下,我正在使用ListView,在另一个情况下,我正在传递DropDownList。
我想检查传递的对象是否为DropDownList,如果是,则执行一些代码。我应该如何做?
到目前为止,我的代码没有起作用:
Sub FillCategories(ByVal Obj As Object)
Dim cmd As New SqlCommand("sp_Resources_Categories", Conn)
cmd.CommandType = CommandType.StoredProcedure
Obj.DataSource = cmd.ExecuteReader
If Obj Is System.Web.UI.WebControls.DropDownList Then
End If
Obj.DataBind()
End Sub
TypeOf
可能是一个更简单的选项,至少在代码可读性方面;我也用一个例子更新了答案。 - Cody GraySelect Case (Obj.GetType())
和多个IF TypeOf Obj is ...
有什么区别? - Luke T O'BrienmyMemberInfo.DeclaringType.FullName = myObj.GetType().FullName
的方法。这是因为,正如Leah上面提到的那样,我们不能使用'='来比较实际类型。 - Cristian Rusanu