Pasar codigo de C# a VB.NET

10/12/2003 - 10:35 por Eduardo Robles | Informe spam
Para pasar un codigo de C# a VB.NET no se si lo hago bien

'-

El código en C# es

'-

public class ClaseBase

{

protected string m_sProovedor = "Microsoft.Jet.OLEDB.4.0";

public virtual DataSet GetData()

{

m_oDS = new DataSet();

m_oDA.Fill(m_oDS, m_sClassName);

return m_oDS;

}

}

public class LaqueHereda1: ClaseBase

{

//--
-

// Class Constructor (zero arguments)

//--
-

public LaqueHereda1()

{

m_sClassName = "LaqueHereda1";

m_oDA = new SqlDataAdapter();


}



public class LaqueHereda2: ClaseBase

{

LaqueHereda1 m_ozonas = null;

}

public LaqueHereda2()

{

m_ozonas = new LaqueHereda1();

}





'--

' Si traduzco el codigo de C# a Visual Basic . NET

' ¿ Debe quedar asi ?

'--



namespace miespacio


Public Class ClaseBase

Protected m_sProovedor As String = "Microsoft.Jet.OLEDB.4.0"

Public Overridable Function getdata() As DataSet

m_oDS = New DataSet()

m_oDA.Fill(m_oDS, m_sClassName)

getdata = m_oDS

End Function

End Class







Public Class LaqueHereda1

Inherits ClaseBase

Sub New()

m_sClassName = "LaqueHereda1"

Dim m_oDA = New OleDbDataAdapter()

End Sub

End Class

Public Class LaqueHereda2

Inherits ClaseBase

Dim m_ozonas As LaqueHereda1= Nothing

Sub New()

m_ozonas = New LaqueHereda1()

End Sub

End Class

End Namespace





Al crear una instancia de LaqueHereda2 con

Dim oTree As miespacio.LaqueHereda2= New miespacio.LaqueHereda2()

en C# hace una cosa y en VB otra

Me explico : si depuro linea a linea veo que C# antes de llamar al
constructor lee la linea que crea la variable

LaqueHereda1 m_ozonas = null;

PERO en cambio el VB no pasa por ella y se va directamente al constructor

NO ENTIENDO POR QUE PASA ESTO

Es decir si el C# instancia una clase antes de llamar a su constructor
inicializa sus variables pero en VB no pasa eso ??
 

Leer las respuestas

#1 A.Poblacion
11/12/2003 - 19:17 | Informe spam
Hay una diferencia entre C# y VB:
En C# el constructor de una clase hija llama automáticamente al constructor
de la clase madre, mientras que en VB tienes que codificarlo expresamente
poniendo MyBase.New() dentro del constructor de la clase hija. Creo que eso
es lo que te está pasando.



"Eduardo Robles" wrote in message
news:udL$
Para pasar un codigo de C# a VB.NET no se si lo hago bien

'-

El código en C# es

'-

public class ClaseBase

{

protected string m_sProovedor = "Microsoft.Jet.OLEDB.4.0";

public virtual DataSet GetData()

{

m_oDS = new DataSet();

m_oDA.Fill(m_oDS, m_sClassName);

return m_oDS;

}

}

public class LaqueHereda1: ClaseBase

{




//--
-

// Class Constructor (zero arguments)




//--
-

public LaqueHereda1()

{

m_sClassName = "LaqueHereda1";

m_oDA = new SqlDataAdapter();


}



public class LaqueHereda2: ClaseBase

{

LaqueHereda1 m_ozonas = null;

}

public LaqueHereda2()

{

m_ozonas = new LaqueHereda1();

}





'--

' Si traduzco el codigo de C# a Visual Basic . NET

' ¿ Debe quedar asi ?

'--



namespace miespacio


Public Class ClaseBase

Protected m_sProovedor As String = "Microsoft.Jet.OLEDB.4.0"

Public Overridable Function getdata() As DataSet

m_oDS = New DataSet()

m_oDA.Fill(m_oDS, m_sClassName)

getdata = m_oDS

End Function

End Class







Public Class LaqueHereda1

Inherits ClaseBase

Sub New()

m_sClassName = "LaqueHereda1"

Dim m_oDA = New OleDbDataAdapter()

End Sub

End Class

Public Class LaqueHereda2

Inherits ClaseBase

Dim m_ozonas As LaqueHereda1= Nothing

Sub New()

m_ozonas = New LaqueHereda1()

End Sub

End Class

End Namespace





Al crear una instancia de LaqueHereda2 con

Dim oTree As miespacio.LaqueHereda2= New miespacio.LaqueHereda2()

en C# hace una cosa y en VB otra

Me explico : si depuro linea a linea veo que C# antes de llamar al
constructor lee la linea que crea la variable

LaqueHereda1 m_ozonas = null;

PERO en cambio el VB no pasa por ella y se va directamente al constructor

NO ENTIENDO POR QUE PASA ESTO

Es decir si el C# instancia una clase antes de llamar a su constructor
inicializa sus variables pero en VB no pasa eso ??





Preguntas similares