Foros del Web » Programación para mayores de 30 ;) » .NET »

InvalidCastException

Estas en el tema de InvalidCastException en el foro de .NET en Foros del Web. Se puede convertir un tipo TcpClient en un tipo que herede de este?, es decir, yo tengo una clase que hereda de TcpClient, llamada MyTcpClient. ...
  #1 (permalink)  
Antiguo 20/11/2005, 18:41
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 7 meses
Puntos: 9
InvalidCastException

Se puede convertir un tipo TcpClient en un tipo que herede de este?, es decir, yo tengo una clase que hereda de TcpClient, llamada MyTcpClient. Cuando intento obtener el TcpClient mediante TcpListener.AcceptTcpClient(), me sale error. Intenté solucionarlo de la siguiente manera, aunque me vuelve a salir error:

Dim Client As MyTcpClient

Client = Ctype(TcpListener.AcceptTcpClient(), MyTcpClient)


Y me sale InvalidCastException, por lógica pienso que debe ser imposible tratar de hacer esto que estoy intentando, pero, como se logra entonces hacer uso de las propiedades protegidas de la clase TcpClient?

Saludos!-
__________________
Add, never Remove
  #2 (permalink)  
Antiguo 21/11/2005, 09:06
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 21 años, 5 meses
Puntos: 7
TcpListener.AcceptTcpClient() Este método te devuelve un TcpClient, si quieres que te devuelva un MyTcpClient, tendrás que sobreescrbir el método AcceptTcpClient() del TcpListener.
__________________
Charlie.
  #3 (permalink)  
Antiguo 21/11/2005, 10:26
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 7 meses
Puntos: 9
No se mucho de herencia, pero lo intente hacer, pero enseguida me marca error. Intento hacer esto:

PublicOverridesFunction AcceptTcpClient() As MyTcpClient


EndFunction

Me dice que no se puede reemplazar ya que AcceptTcpClient de la clase base devuelve un valor distinto.
Es así como se debe emplear?
Suerte!
__________________
Add, never Remove
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:41.