SlideShare una empresa de Scribd logo
1 de 4
Los tipos de un espacio de nombres .NET
Una vez que haya hecho un espacio de nombres accesible a su código, puede acceder a
cualquiera de los tipos que contiene. En esta sección, examinaremos los tipos que puede
contener un espacio de nombres .NET.
Las clases
En VB.NET, las clases son tipos de referencia; es decir, cuando creas una instancia de una
clase en código, trabajas con un puntero (o referencia) al objeto en lugar de hacerlo con el
objeto en sí.
Cuando se crea una instancia de una clase .NET, se ejecuta su constructor (o su subrutina
New). Cada clase .NET puede tener uno o más constructores (es decir, los constructores
pueden estar sobrecargados (overloaded)), y el constructor puede estar sin parámetros o
parametrizado.
Visual Basic .NET proporciona tres formas de inicializar una variable e invocar su
constructor. Estos se ilustran en los siguientes tres conjuntos de declaraciones, cada una de
las cuales crea una instancia de un objeto System.IO.FileInfo:
'Declaración única. Recomendada
Dim oFile As New FileInfo ("c:documentsnotes.txt")
'Declaración única con llamada separada al constructor
Dim oFile As FileInfo = New FileInfo ("c:documentsnotes.txt")
'Declaración separada e inicialización
Dim oFile As FileInfo
oFile = New FileInfo ("c:documentsnotes.txt")
Una vez que creamos una instancia de una clase, podemos invocar sus propiedades y
métodos. Además, podemos manejar sus eventos (asumiendo que expone eventos) si
creamos una instancia del objeto usando la WithEvents palabra clave.
Dim WithEvents cn As New SqlConnection()
Visual Basic .NET, admite tanto miembros de instancia como compartidos.
Instance members existen para cada instancia de una clase.
Shared members son miembros que no están asociados con una instancia específica de una
clase o estructura, sino que son comunes a todas las instancias de una clase.
El acceso a un miembro compartido (Shared) de una clase no requiere que se cree una
instancia de la clase; se puede acceder usando solo el nombre de la clase. Además, si el
miembro compartido es una propiedad, tiene un valor único para todas las instancias de la
clase.
Accedimos al método WriteLine compartido de la clase Console, de la siguiente manera:
Console.WriteLine(oPerson.Name)
Tenga en cuenta que, para hacer esto, no tuvimos que crear una instancia de la clase de la
Consola; simplemente llamamos a la clase Console directamente.
Una peculiaridad de Visual Basic es que puede invocar miembros compartidos usando el
nombre de clase o el nombre de una variable de instancia. El siguiente fragmento de código,
que crea una instancia de la clase Console, también funciona:
Dim con As Console
con.WriteLine(oPerson2.Gender.ToString)
Estructuras
Las estructuras son muy similares a las clases, excepto que son tipos de valor en lugar de
tipos de referencia. La mayoría de los tipos de datos primitivos (Boolean, Byte, Char, Int16,
Int32, etc.) definidos en la FCL (Framework Class Library, biblioteca de clases) se
implementan como estructuras.
Trabaja con estructuras de la misma manera que trabaja con clases .NET, excepto que
la palabra clave New no se usa para declarar una estructura:
'Declaración e inicialización
Dim num1 As Int16 = 10
'Declaración separada e inicialización
Dim num2 As Int16
num2 = 10
Enumeraciones
Una enumeración es un conjunto relacionado de constantes.
No tiene que crear instancias de enumeraciones para aprovechar sus miembros. Sin
embargo, cuando trabaje con enumeraciones en .NET, debe especificar el nombre de la
enumeración para poder acceder a una de sus constantes. Por ejemplo:
Dim dy As String = WeekdayName(1, False, FirstDayOfWeek.Sunday)
Interfaces
Las interfaces son clases de base virtual; es decir, están formados por miembros (métodos,
propiedades y eventos) que no tienen implementación.
En su lugar, las clases derivadas deben proporcionar la implementación. Por ejemplo, el
siguiente fragmento de código usa la herencia de interfaz para definir una nueva clase:
Class CustomCompare
Implements System.IComparable
Public Function CompareTo(obj As Object) As Integer _
Implements System.IComparable.CompareTo
' Implementation of IComparable.ICompareTo
End Function
End Class
Delegados
Un delegado es un tipo de referencia que representa un puntero a función fuertemente
tipado.
Todos los delegados se derivan explícita o implícitamente de la clase System.Delegate, que
incluye un número de miembros que proporcionan información sobre el delegado, crean
instancias de objetos o invocan al delegado.
Los delegados se pueden utilizar en procedimientos de eventos, para devoluciones de
llamadas asíncronas y donde se espera la dirección de una función. El siguiente ejemplo
utiliza un delegado para definir el thread procedure que se pasará al método
QueueUserWorkItem de la clase ThreadPool:
Option Strict On
Imports Microsoft.VisualBasic
Imports System
Imports System.Threading
Imports System.Windows.Forms
Public Class ThreadedForm : Inherits Form
Protected WithEvents btnStart As Button
Protected lblOutput As Label
Public Shared Sub Main()
Dim thrdForm As New ThreadedForm()
Application.Run(thrdForm)
End Sub
Public Sub New()
Me.Height = 200
Me.Width = 400
btnStart = New Button()
btnStart.Text = "&Start"
btnStart.Top = 50
btnStart.Left = 100
btnStart.Width = 75
btnStart.Height = 50
Me.Controls.Add(btnStart)
lblOutput = New Label()
lblOutput.Top = 125
lblOutput.Left = 100
lblOutput.Width = 200
lblOutput.Height = 75
Me.Controls.Add(lblOutput)
Me.Text = "Asynchronous Callback Example"
End Sub
Protected Sub btnStart_Click(sender As Object, _
e As EventArgs) _
Handles btnStart.Click
btnStart.Enabled = False
Dim thrdProc As WaitCallback = AddressOf ThreadProcedure
ThreadPool.QueueUserWorkItem(thrdProc, 1000000)
End Sub
Protected Sub ThreadProcedure(o As Object)
Dim i As Integer
If TypeOf o Is Integer Then
i = DirectCast(o, Integer)
Else
Exit Sub
End If
Dim lCtr As Long
For lCtr = 0 to 10000000
If lCtr Mod 1000000 = 0 Then
lblOutput.Text = lblOutput.Text & "X"
End If
Next
End Sub
End Class

Más contenido relacionado

La actualidad más candente

La actualidad más candente (17)

Constructores en Java
Constructores en JavaConstructores en Java
Constructores en Java
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en Java
 
Contructores en java(grupo 8)
Contructores en java(grupo 8)Contructores en java(grupo 8)
Contructores en java(grupo 8)
 
Curso c sharp
Curso c sharpCurso c sharp
Curso c sharp
 
Constructores en java(grupo 8)
Constructores en java(grupo 8)Constructores en java(grupo 8)
Constructores en java(grupo 8)
 
Capitulo 8 9-10
Capitulo 8 9-10Capitulo 8 9-10
Capitulo 8 9-10
 
Ppt java
Ppt javaPpt java
Ppt java
 
Metodos Constructor Y Destructor
Metodos Constructor Y DestructorMetodos Constructor Y Destructor
Metodos Constructor Y Destructor
 
Java
JavaJava
Java
 
Preguntas de introiducción a java
Preguntas de introiducción a javaPreguntas de introiducción a java
Preguntas de introiducción a java
 
Constructor Y Destructor
Constructor Y DestructorConstructor Y Destructor
Constructor Y Destructor
 
Apendice general 4 terminos de programador
Apendice general 4 terminos de programadorApendice general 4 terminos de programador
Apendice general 4 terminos de programador
 
Aprendiendo objetos en c++
Aprendiendo objetos en c++Aprendiendo objetos en c++
Aprendiendo objetos en c++
 
Java
JavaJava
Java
 
Preguntas sobre lenguaje java
Preguntas sobre lenguaje javaPreguntas sobre lenguaje java
Preguntas sobre lenguaje java
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismo
 

Similar a Los tipos de un espacio de nombres

Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosAntonio Palomares Sender
 
Visual basic
Visual basicVisual basic
Visual basicmellcv
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02Krizztiina Pacheko
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje javaMargarita Romero
 
Arquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NETArquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NETRoberto Taborda
 
_Concepto de interfaz_interfaz_interfaz_interfaz_interfaz_.pptx
_Concepto de interfaz_interfaz_interfaz_interfaz_interfaz_.pptx_Concepto de interfaz_interfaz_interfaz_interfaz_interfaz_.pptx
_Concepto de interfaz_interfaz_interfaz_interfaz_interfaz_.pptxFabianAndresNuezPinz
 
Tarea_Investigacion programacion .pdf
Tarea_Investigacion programacion .pdfTarea_Investigacion programacion .pdf
Tarea_Investigacion programacion .pdfBrimmerRamrez
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en JavaAlelt2890
 
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Sergio Sanchez
 
Programación ii presentación tema 5
Programación ii presentación tema 5Programación ii presentación tema 5
Programación ii presentación tema 5Joel Mieses
 

Similar a Los tipos de un espacio de nombres (20)

manual de C#
manual de C#manual de C#
manual de C#
 
Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetos
 
Visual basic
Visual basicVisual basic
Visual basic
 
Datos previos
Datos previosDatos previos
Datos previos
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
 
INTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVAINTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVA
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje java
 
Arquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NETArquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NET
 
Vn-Desarrollo
Vn-DesarrolloVn-Desarrollo
Vn-Desarrollo
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
 
_Concepto de interfaz_interfaz_interfaz_interfaz_interfaz_.pptx
_Concepto de interfaz_interfaz_interfaz_interfaz_interfaz_.pptx_Concepto de interfaz_interfaz_interfaz_interfaz_interfaz_.pptx
_Concepto de interfaz_interfaz_interfaz_interfaz_interfaz_.pptx
 
Tarea_Investigacion programacion .pdf
Tarea_Investigacion programacion .pdfTarea_Investigacion programacion .pdf
Tarea_Investigacion programacion .pdf
 
Leguaje de programacion C#
Leguaje de programacion C#Leguaje de programacion C#
Leguaje de programacion C#
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en Java
 
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
 
Programación ii presentación tema 5
Programación ii presentación tema 5Programación ii presentación tema 5
Programación ii presentación tema 5
 
Lenguajes de Programación: Clases y objetos
Lenguajes de Programación: Clases y objetosLenguajes de Programación: Clases y objetos
Lenguajes de Programación: Clases y objetos
 
Curso netcsharp
Curso netcsharpCurso netcsharp
Curso netcsharp
 

Último

presentacion de conjuntos para primaria.ppt
presentacion de conjuntos para primaria.pptpresentacion de conjuntos para primaria.ppt
presentacion de conjuntos para primaria.pptMelina Alama Visitacion
 
Data Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosData Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosssuser948499
 
Evolución de la fortuna de la familia Slim (1994-2024).pdf
Evolución de la fortuna de la familia Slim (1994-2024).pdfEvolución de la fortuna de la familia Slim (1994-2024).pdf
Evolución de la fortuna de la familia Slim (1994-2024).pdfJC Díaz Herrera
 
Industria musical de EUA vs Industria musical Corea del Sur (2024).pdf
Industria musical de EUA vs Industria musical Corea del Sur (2024).pdfIndustria musical de EUA vs Industria musical Corea del Sur (2024).pdf
Industria musical de EUA vs Industria musical Corea del Sur (2024).pdfJC Díaz Herrera
 
La importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresaLa importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresamerca6
 
Las mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdfLas mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdfJC Díaz Herrera
 
Panorama Sociodemográfico de México 2020: GUANAJUATO
Panorama Sociodemográfico de México 2020: GUANAJUATOPanorama Sociodemográfico de México 2020: GUANAJUATO
Panorama Sociodemográfico de México 2020: GUANAJUATOJuan Carlos Fonseca Mata
 
CNEB-CURRICULO NACIONAL DE EDUCACION BASICA
CNEB-CURRICULO NACIONAL DE EDUCACION BASICACNEB-CURRICULO NACIONAL DE EDUCACION BASICA
CNEB-CURRICULO NACIONAL DE EDUCACION BASICAYOSHELINSARAIMAMANIS2
 
INTRODUCCION-A-LOS-ALGORITMOS-BASICOS.pptx
INTRODUCCION-A-LOS-ALGORITMOS-BASICOS.pptxINTRODUCCION-A-LOS-ALGORITMOS-BASICOS.pptx
INTRODUCCION-A-LOS-ALGORITMOS-BASICOS.pptxJamesHerberthBacaTel
 
Posiciones del IDH a nivel global en México (1982-2024).pdf
Posiciones del IDH a nivel global en México (1982-2024).pdfPosiciones del IDH a nivel global en México (1982-2024).pdf
Posiciones del IDH a nivel global en México (1982-2024).pdfJC Díaz Herrera
 
AA CUADRO DE TEORIA DEL CASO. (1) (1).docx
AA CUADRO DE TEORIA DEL CASO. (1) (1).docxAA CUADRO DE TEORIA DEL CASO. (1) (1).docx
AA CUADRO DE TEORIA DEL CASO. (1) (1).docxLuisAngelYomonaYomon
 
Los más ricos administradores de fondo de cobertura (1968-2024).pdf
Los más ricos administradores de fondo de cobertura (1968-2024).pdfLos más ricos administradores de fondo de cobertura (1968-2024).pdf
Los más ricos administradores de fondo de cobertura (1968-2024).pdfJC Díaz Herrera
 
Familias más ricas de AL por países (2024).pdf
Familias más ricas de AL por países (2024).pdfFamilias más ricas de AL por países (2024).pdf
Familias más ricas de AL por países (2024).pdfJC Díaz Herrera
 
Listas de Fundamentos de Programación 2024
Listas de Fundamentos de Programación 2024Listas de Fundamentos de Programación 2024
Listas de Fundamentos de Programación 2024AndrsReinosoSnchez1
 
triptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescenciatriptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescenciaferg6120
 
Triptico-del-Bullying qué es, cómo detectarlo, donde acudir
Triptico-del-Bullying qué es, cómo detectarlo, donde acudirTriptico-del-Bullying qué es, cómo detectarlo, donde acudir
Triptico-del-Bullying qué es, cómo detectarlo, donde acudirluis809799
 
Las familias más ricas del sionismo en el siglo XXI.pdf
Las familias más ricas del sionismo en el siglo XXI.pdfLas familias más ricas del sionismo en el siglo XXI.pdf
Las familias más ricas del sionismo en el siglo XXI.pdfJC Díaz Herrera
 
Qué es un Histograma estadístico teoria y problema
Qué es un Histograma estadístico teoria y problemaQué es un Histograma estadístico teoria y problema
Qué es un Histograma estadístico teoria y problemaJoellyAlejandraRodrg
 
Presentacion-Prevencion-Incendios-Forestales.pdf
Presentacion-Prevencion-Incendios-Forestales.pdfPresentacion-Prevencion-Incendios-Forestales.pdf
Presentacion-Prevencion-Incendios-Forestales.pdfDodiAcuaArstica
 
Posiciones_del_sionismo_en_los_imperios globales de la humanidad (2024).pdf
Posiciones_del_sionismo_en_los_imperios globales de la humanidad (2024).pdfPosiciones_del_sionismo_en_los_imperios globales de la humanidad (2024).pdf
Posiciones_del_sionismo_en_los_imperios globales de la humanidad (2024).pdfJC Díaz Herrera
 

Último (20)

presentacion de conjuntos para primaria.ppt
presentacion de conjuntos para primaria.pptpresentacion de conjuntos para primaria.ppt
presentacion de conjuntos para primaria.ppt
 
Data Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosData Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datos
 
Evolución de la fortuna de la familia Slim (1994-2024).pdf
Evolución de la fortuna de la familia Slim (1994-2024).pdfEvolución de la fortuna de la familia Slim (1994-2024).pdf
Evolución de la fortuna de la familia Slim (1994-2024).pdf
 
Industria musical de EUA vs Industria musical Corea del Sur (2024).pdf
Industria musical de EUA vs Industria musical Corea del Sur (2024).pdfIndustria musical de EUA vs Industria musical Corea del Sur (2024).pdf
Industria musical de EUA vs Industria musical Corea del Sur (2024).pdf
 
La importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresaLa importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresa
 
Las mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdfLas mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdf
 
Panorama Sociodemográfico de México 2020: GUANAJUATO
Panorama Sociodemográfico de México 2020: GUANAJUATOPanorama Sociodemográfico de México 2020: GUANAJUATO
Panorama Sociodemográfico de México 2020: GUANAJUATO
 
CNEB-CURRICULO NACIONAL DE EDUCACION BASICA
CNEB-CURRICULO NACIONAL DE EDUCACION BASICACNEB-CURRICULO NACIONAL DE EDUCACION BASICA
CNEB-CURRICULO NACIONAL DE EDUCACION BASICA
 
INTRODUCCION-A-LOS-ALGORITMOS-BASICOS.pptx
INTRODUCCION-A-LOS-ALGORITMOS-BASICOS.pptxINTRODUCCION-A-LOS-ALGORITMOS-BASICOS.pptx
INTRODUCCION-A-LOS-ALGORITMOS-BASICOS.pptx
 
Posiciones del IDH a nivel global en México (1982-2024).pdf
Posiciones del IDH a nivel global en México (1982-2024).pdfPosiciones del IDH a nivel global en México (1982-2024).pdf
Posiciones del IDH a nivel global en México (1982-2024).pdf
 
AA CUADRO DE TEORIA DEL CASO. (1) (1).docx
AA CUADRO DE TEORIA DEL CASO. (1) (1).docxAA CUADRO DE TEORIA DEL CASO. (1) (1).docx
AA CUADRO DE TEORIA DEL CASO. (1) (1).docx
 
Los más ricos administradores de fondo de cobertura (1968-2024).pdf
Los más ricos administradores de fondo de cobertura (1968-2024).pdfLos más ricos administradores de fondo de cobertura (1968-2024).pdf
Los más ricos administradores de fondo de cobertura (1968-2024).pdf
 
Familias más ricas de AL por países (2024).pdf
Familias más ricas de AL por países (2024).pdfFamilias más ricas de AL por países (2024).pdf
Familias más ricas de AL por países (2024).pdf
 
Listas de Fundamentos de Programación 2024
Listas de Fundamentos de Programación 2024Listas de Fundamentos de Programación 2024
Listas de Fundamentos de Programación 2024
 
triptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescenciatriptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescencia
 
Triptico-del-Bullying qué es, cómo detectarlo, donde acudir
Triptico-del-Bullying qué es, cómo detectarlo, donde acudirTriptico-del-Bullying qué es, cómo detectarlo, donde acudir
Triptico-del-Bullying qué es, cómo detectarlo, donde acudir
 
Las familias más ricas del sionismo en el siglo XXI.pdf
Las familias más ricas del sionismo en el siglo XXI.pdfLas familias más ricas del sionismo en el siglo XXI.pdf
Las familias más ricas del sionismo en el siglo XXI.pdf
 
Qué es un Histograma estadístico teoria y problema
Qué es un Histograma estadístico teoria y problemaQué es un Histograma estadístico teoria y problema
Qué es un Histograma estadístico teoria y problema
 
Presentacion-Prevencion-Incendios-Forestales.pdf
Presentacion-Prevencion-Incendios-Forestales.pdfPresentacion-Prevencion-Incendios-Forestales.pdf
Presentacion-Prevencion-Incendios-Forestales.pdf
 
Posiciones_del_sionismo_en_los_imperios globales de la humanidad (2024).pdf
Posiciones_del_sionismo_en_los_imperios globales de la humanidad (2024).pdfPosiciones_del_sionismo_en_los_imperios globales de la humanidad (2024).pdf
Posiciones_del_sionismo_en_los_imperios globales de la humanidad (2024).pdf
 

Los tipos de un espacio de nombres

  • 1. Los tipos de un espacio de nombres .NET Una vez que haya hecho un espacio de nombres accesible a su código, puede acceder a cualquiera de los tipos que contiene. En esta sección, examinaremos los tipos que puede contener un espacio de nombres .NET. Las clases En VB.NET, las clases son tipos de referencia; es decir, cuando creas una instancia de una clase en código, trabajas con un puntero (o referencia) al objeto en lugar de hacerlo con el objeto en sí. Cuando se crea una instancia de una clase .NET, se ejecuta su constructor (o su subrutina New). Cada clase .NET puede tener uno o más constructores (es decir, los constructores pueden estar sobrecargados (overloaded)), y el constructor puede estar sin parámetros o parametrizado. Visual Basic .NET proporciona tres formas de inicializar una variable e invocar su constructor. Estos se ilustran en los siguientes tres conjuntos de declaraciones, cada una de las cuales crea una instancia de un objeto System.IO.FileInfo: 'Declaración única. Recomendada Dim oFile As New FileInfo ("c:documentsnotes.txt") 'Declaración única con llamada separada al constructor Dim oFile As FileInfo = New FileInfo ("c:documentsnotes.txt") 'Declaración separada e inicialización Dim oFile As FileInfo oFile = New FileInfo ("c:documentsnotes.txt") Una vez que creamos una instancia de una clase, podemos invocar sus propiedades y métodos. Además, podemos manejar sus eventos (asumiendo que expone eventos) si creamos una instancia del objeto usando la WithEvents palabra clave. Dim WithEvents cn As New SqlConnection() Visual Basic .NET, admite tanto miembros de instancia como compartidos. Instance members existen para cada instancia de una clase. Shared members son miembros que no están asociados con una instancia específica de una clase o estructura, sino que son comunes a todas las instancias de una clase. El acceso a un miembro compartido (Shared) de una clase no requiere que se cree una instancia de la clase; se puede acceder usando solo el nombre de la clase. Además, si el miembro compartido es una propiedad, tiene un valor único para todas las instancias de la clase. Accedimos al método WriteLine compartido de la clase Console, de la siguiente manera: Console.WriteLine(oPerson.Name) Tenga en cuenta que, para hacer esto, no tuvimos que crear una instancia de la clase de la Consola; simplemente llamamos a la clase Console directamente.
  • 2. Una peculiaridad de Visual Basic es que puede invocar miembros compartidos usando el nombre de clase o el nombre de una variable de instancia. El siguiente fragmento de código, que crea una instancia de la clase Console, también funciona: Dim con As Console con.WriteLine(oPerson2.Gender.ToString) Estructuras Las estructuras son muy similares a las clases, excepto que son tipos de valor en lugar de tipos de referencia. La mayoría de los tipos de datos primitivos (Boolean, Byte, Char, Int16, Int32, etc.) definidos en la FCL (Framework Class Library, biblioteca de clases) se implementan como estructuras. Trabaja con estructuras de la misma manera que trabaja con clases .NET, excepto que la palabra clave New no se usa para declarar una estructura: 'Declaración e inicialización Dim num1 As Int16 = 10 'Declaración separada e inicialización Dim num2 As Int16 num2 = 10 Enumeraciones Una enumeración es un conjunto relacionado de constantes. No tiene que crear instancias de enumeraciones para aprovechar sus miembros. Sin embargo, cuando trabaje con enumeraciones en .NET, debe especificar el nombre de la enumeración para poder acceder a una de sus constantes. Por ejemplo: Dim dy As String = WeekdayName(1, False, FirstDayOfWeek.Sunday) Interfaces Las interfaces son clases de base virtual; es decir, están formados por miembros (métodos, propiedades y eventos) que no tienen implementación. En su lugar, las clases derivadas deben proporcionar la implementación. Por ejemplo, el siguiente fragmento de código usa la herencia de interfaz para definir una nueva clase: Class CustomCompare Implements System.IComparable Public Function CompareTo(obj As Object) As Integer _ Implements System.IComparable.CompareTo ' Implementation of IComparable.ICompareTo End Function End Class
  • 3. Delegados Un delegado es un tipo de referencia que representa un puntero a función fuertemente tipado. Todos los delegados se derivan explícita o implícitamente de la clase System.Delegate, que incluye un número de miembros que proporcionan información sobre el delegado, crean instancias de objetos o invocan al delegado. Los delegados se pueden utilizar en procedimientos de eventos, para devoluciones de llamadas asíncronas y donde se espera la dirección de una función. El siguiente ejemplo utiliza un delegado para definir el thread procedure que se pasará al método QueueUserWorkItem de la clase ThreadPool: Option Strict On Imports Microsoft.VisualBasic Imports System Imports System.Threading Imports System.Windows.Forms Public Class ThreadedForm : Inherits Form Protected WithEvents btnStart As Button Protected lblOutput As Label Public Shared Sub Main() Dim thrdForm As New ThreadedForm() Application.Run(thrdForm) End Sub Public Sub New() Me.Height = 200 Me.Width = 400 btnStart = New Button() btnStart.Text = "&Start" btnStart.Top = 50 btnStart.Left = 100 btnStart.Width = 75 btnStart.Height = 50 Me.Controls.Add(btnStart) lblOutput = New Label() lblOutput.Top = 125 lblOutput.Left = 100 lblOutput.Width = 200 lblOutput.Height = 75 Me.Controls.Add(lblOutput) Me.Text = "Asynchronous Callback Example" End Sub Protected Sub btnStart_Click(sender As Object, _ e As EventArgs) _ Handles btnStart.Click btnStart.Enabled = False Dim thrdProc As WaitCallback = AddressOf ThreadProcedure ThreadPool.QueueUserWorkItem(thrdProc, 1000000) End Sub Protected Sub ThreadProcedure(o As Object) Dim i As Integer If TypeOf o Is Integer Then i = DirectCast(o, Integer) Else Exit Sub End If Dim lCtr As Long For lCtr = 0 to 10000000
  • 4. If lCtr Mod 1000000 = 0 Then lblOutput.Text = lblOutput.Text & "X" End If Next End Sub End Class