.net - vacio - validar null en c#
Cómo verificar si un objeto es de cierto tipo (1)
En VB.NET, debe usar el método GetType
para recuperar el tipo de una instancia de un objeto, y el operador GetType()
para recuperar el tipo de otro tipo conocido.
Una vez que tenga los dos tipos, simplemente puede compararlos usando el operador Is
.
Entonces tu código debería estar escrito así:
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.GetType() Is GetType(System.Web.UI.WebControls.DropDownList) Then
End If
Obj.DataBind()
End Sub
También puede usar el operador TypeOf
lugar del método GetType
. Tenga en cuenta que esto prueba si su objeto es compatible con el tipo dado, no es que sea del mismo tipo. Eso se vería así:
If TypeOf Obj Is System.Web.UI.WebControls.DropDownList Then
End If
Totalidad trivial e irrelevante: Tradicionalmente, los nombres de los parámetros son camelCased (lo que significa que siempre comienzan con una letra minúscula) al escribir el código .NET (ya sea VB.NET o C #). Esto los hace fáciles de distinguir de un vistazo de clases, tipos, métodos, etc.
Paso varios objetos a una subrutina para ejecutar el mismo proceso pero usando un objeto diferente cada vez. Por ejemplo, en un caso estoy usando un ListView y en otro caso estoy pasando un DropDownList.
Quiero comprobar si el objeto que se pasa es una DropDownList y luego ejecutar algún código, si es así. ¿Cómo hago esto?
Mi código hasta ahora que no funciona:
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