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