Delegados en visual basic.net y c#

Veamos algunos conceptos sobre delegados:

Los delegados son un tipo que representa a una función con una determinada declaración.

Vamos a analizar esta definición poco a poco:

  • Los delegados son un TIPO.
  • Los delegados representan a una función.
  • La función debe tener una determinada declaración.

Como los delegados son un tipo de dato, logicamente se pueden crear variables de este tipo asi mismo un delegado puede representar a una funcion por lo que necesita ser declarado.

Ejemplo:

En visual Basic. Net:

Public Delegate Function RealizarCalculo(ByVal Num1 As Integer, ByVal Num2 As Integer) As String

Se declara con la palabra clave Delegate…luego el nombre del delegado y su firma que implica los parametros y el tipo de valor devuelto en caso sea uno de tipo Function.

La firma dice lo siguiente: se tienen dos parametros, tanto el primero como el segundo son de tipo Integer y el valor que devuelve es de tipo string.

En c#:

public  delegate string RealizarCalculo(int Num1, int Num2);

Al igual que en visual basic se declara con la palabra clave Delegate, luego el nombre de la funcion y los parametros y claro lo que retornara en este caso un string-

A continuacion un video sobre un ejemplo de delegados en visual basic y el codigo tanto en c# como en visual basic.

Primera parte:

Segunda parte:

Codigo en c#:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
 
public class Calcula
{
    private int cNum1;
    private int cNum2;
    public int Num1
    {
        get { return cNum1; }
        set { cNum1 = value; }
    }
    public int Num2
    {
        get { return cNum2; }
        set { cNum2 = value; }
    }
 
   public  delegate string RealizarCalculo(int Num1, int Num2);
    public String funcion(RealizarCalculo delegado)
    {
        return delegado.Invoke(Num1, Num2);
    }
    static void Main(string[] args)
    {
        Calcula objeto = new Calcula();
        objeto.Num1 = 3;
        objeto.Num2 = 4;
        RealizarCalculo var;
        var = new RealizarCalculo(objeto.Suma);
        String a = var(objeto.Num1, objeto.Num2);
        Console.WriteLine("Suma: {0}", a);
        Console.ReadLine();
    }
    public string Suma(int a, int b)
    {
        return "La suma es: " + (a + b);
    }
}

Codigo en VB.NET:

Module Module1
    'delegados
 
    Public Sub main()
        Dim objeto As New Calcula
        objeto.Num1 = 3
        objeto.Num2 = 4
        With objeto
 
            Console.WriteLine(.funcion(AddressOf Suma))
        End With
 
    End Sub
    Public Function Suma(ByVal a As Integer, ByVal b As Integer) As String
        Return "suma: " & (a + b) & vbNewLine
    End Function
End Module
Public Class Calcula
    Private cNum1 As Integer
    Private cNum2 As Integer
    Public Property Num1() As Integer
        Get
            Return cNum1
        End Get
        Set(ByVal value As Integer)
            cNum1 = value
        End Set
    End Property
    Public Property Num2() As Integer
        Get
            Return cNum2
        End Get
        Set(ByVal value As Integer)
            cNum2 = value
        End Set
    End Property
    Public Delegate Function RealizarCalculo(ByVal Num1 As Integer, ByVal Num2 As Integer) As String
    Public Function funcion(ByVal delegado As RealizarCalculo) As String
        Return delegado.Invoke(Num1, Num2)
    End Function
End Class

Eventos en visual basic.net

Tanto los metodos como las propiedades permiten escribir codigo que interactua con los objetos, invocando una funcionalidad concreta cuando esta se necesita. Habitualmente para los objetos es util proporcionar un aviso a medida que van sucediendo ciertos procesos. Se pueden ver de este tipo en los controles: cuando hay un boton que indica que se ha hecho un clic mediante el evento Click, o cuando un recuadro de texto se indica que sus contenidos han cambiado, mediante un evento TextChanged. Los objetos pueden lanzar sus propios eventos, proporcioando un mecanismo potente y facil de implementar mediante el cual, los objetos pueden notificar al codigo cliente de las actividades o los eventos relevantes. En visual basic 2008, los eventos se proporcionan utilizando el mecanismo estandar de los metodos delegados, en .NET.

Veamos como trabajar con los eventos:

creacion de clases al vuelo….en Visual basic 2008

Muy bien amigos…este es un nuevo post del cual hablare sobre .NET…por cierto hace uff que no he posteado algo …xD pero bueno siempre regresamos..a lo k ibamos..hoy hablare en modo puntual sobre las clases en visual basic 2008

Creacion de clases:

Una clase es una representación abstracta de algo particular de un objeto por ejemplo..tenemos a la clase Persona lo cual representaria lo abstracto y un objeto vendria a ser las creaciones que se dan deacuerdo a la clase o tmb llamada plantilla, por ejemplo.. los objetos: “Luis,Carlos,Julio, Tania,etc”

En resumen…una clase es una plantilla de la cual se crean objetos.

En VB.NET las clases se crean con la palabra clave Class

Public Class Person

End Class

Campos:

Los campos son las variables declaradas en la clase que estaran disponibles para cada uno de los objetos individuales, cuando se ejecute en la aplicacion.

Crearemos los siguientes campos en la clase:

Public Class Person

Private nombre As String ‘campos

Private fechaCumple As Date ‘campos

End Class

Se puede controlar el ambito de las variables o tambien llamado alcance de los campos usando las siguientes palabras claves:

  • private.-disponible unicamente para el codigo de la clase
  • friend.-disponible unicamente para el codigo del proyecto o componente
  • protected.-disponible solo para las clases que heredan de la clase
  • protected friend.-disponible para codificar dentro de su proyecto/componente y en las clases que heredan de otra clase, esten o no el el proyecto.
  • public.-disponible para codificar fuera de la clase y para cualquier proyecto que referencie al ensamblado

Metodos:

Son aquellos que nos proporcionan servicios(o funciones) que se pueden invocar para poder trabajar con el objeto creado. Utilizando sus propios datos o datos pasados como parametros al metodo, se manipula informacion para conseguir resultado o para llevar a cabo una funcion.

En visual basic, los metodos se implementan utilizando rutinas Sub o Function dentro del modulo de clase que define el objeto.  Las rutinas Sub aceptan parametros, pero no devuelven ningun valor como resultado cuando terminan su ejecucion. Las rutinas Function pueden aceptar parametros y siempre generan un valor como resultado, que se puede usar por el codigo llamante.

Para declarar un metodo Sub:

Public Sub walk()
‘aqui va la implementacion del codigo….
End Sub

Para que se pueda usar este metodo tendriamos que crear un objeto de la siguiente manera:

Dim objeto As New Person()
objeto.walk()

Metodos que devuelven valores:

En este tipo de casos se suele usar la palabra clave Function .En este caso crearemos un metodo que devuelve la edad de una persona y tambien para poder implementarlo es necesario indicar el tipo de valor devuelto(en este caso de tipo Integer) cuando se declara dicha funcion. La palabra return devolvemos cualquier valor del tipo de datos adecuado.

Public Function Edad() As Integer
Return CInt(DateDiff(DateInterval.Year, fechaCumple, Now))
End Function

Y para poder usarlo…

Dim objeto As New Person()
Dim objetoEdad As Integer
objetoEdad = objeto.Edad

Parametros del metodo:

Asi mismo a un metodo tambien es posible enviarle informacion en el momento de la llamada. Esto se puede dar mediante parametros.

En este casi podemos crear una clase Person que implementa un metodo Walk  que indique la distancia que la persona anda en el tiempo. Entonces tenemos que ponerle como parametro al metodo una variable que indique la distancia que recorre cada vez que se le llama al metodo.

Public Class Person
Private nombre As String ‘campos
Private fechaCumple As Date ‘campos
Private distanciaTotal As Integer

Public Sub walk(ByVal distancia As Integer)
distanciaTotal += distancia
End Sub
Public Function Edad() As Integer
Return CInt(DateDiff(DateInterval.Year, fechaCumple, Now))
End Function
End Class

Asi cuando querramos usar el metodo le indicamos el parametro siendo del mismo tipo de dato indicado en el metodo de la clase.

Dim distancia As Integer
distancia = 12
Dim objeto As New Person()
objeto.walk(distancia)

Nota: La palabra clave ByVal me indica que el valor del parametro es una copia del valor original. Significa que este valor siempre se mantendra en todo la implementacion del metodo.

Propiedades:

Una propiedad es un metodo que esta especificamente diseñado para establecer y obtener los valores de los datos. Para poder usarlo podriamos usar la palabra clave Property que consolida el establecimiento y recuperacion de un valor del campo de la clase.

Se declara asi…:

Public Class Person

Private nombre As String ‘campos

Public Property Pnombre() As String
Get
Return nombre
End Get
Set(ByVal value As String)
nombre = value
End Set
End Property

End Class

Con la palabra clave Set asignamos el valor del campo y con la palabra clave obtenemos el valor.

Ahora podemos usar este metodo de la siguiente manera:

Dim objeto As New Person()
objeto.Pnombre = “Joel”
MsgBox(objeto.Pnombre)

Asi por ejemplo en la linea    objeto.Pnombre = “Joel” lo que hacemos es asignar el valor, en este modo pues usamos Set y con MsgBox(objeto.Pnombre) enviamos un mensaje pues en este caso usamos Get.

Propiedades parametrizadas:

Este tipo de propiedades reflejan un rango o una matriz de valores. Por ejemplo podemos implementar una propiedad NumeroTelefono como una propiedad parametrizada pues una persona puede tener varios numeros telefonicos y asi mismo una descripcion de cada uno de ellos.

Public Class Person
Private nombre As String ‘campos
Private fechaCumple As Date ‘campos
Private distanciaTotal As Integer
Private telefonos As New Hashtable

Public Property Phonos(ByVal localizacion As String) As String

Get
Return CStr(telefonos.Item(localizacion))
End Get
Set(ByVal value As String)

If  telefonos.ContainsKey(localizacion) Then
telefonos.Item(localizacion) = value
Else
telefonos.Add(localizacion, value)
End If
End Set

End Property
End Class

En el bloque Set usamos localizacion para actualizar o añadir el elemento adecuado en la HashTable. En este caso se esta usando el metodo ContainsKey de la HashTable, para determinar si el numero de telefono ya existe en la lista. Si existe, simplemente actualizamos el valor de la lista. Si no, se tiene que añadir un nuevo elemento a la lista para ese valor.

introduccion a la comunicacion de datos.

Alcances basicos:

¿Que es una red?
Una colección interconectada de computadores autónomos.

¿Para qué se usan las redes?

  • Compartir recursos, especialmente la información (los datos)
  • Proveer la confiabilidad: más de una fuente para los recursos
  • La escalabilidad de los recursos computacionales: si se necesita más poder computacional, se puede comprar un cliente más, en vez de un nuevo mainframe
  • Comunicación

Tecnología de transmisión
· Broadcast. Un solo canal de comunicación compartido por todas las máquinas. Un paquete
mandado por alguna máquina es recibido por todas las otras.
· Point-to-point. Muchas conexiones entre pares individuales de máquinas. Los paquetes de A a B
pueden atravesar máquinas intermedias, entonces se necesita el ruteo (routing) para dirigirlos.

Escala
· Multicomputadores: 1 m
· LAN (local area network): 10 m a 1 km
· MAN (metropolitan area network): 10 km
· WAN (wide area network): 100 km a 1.000 km
· Internet: 10.000 km

LANs
· Normalmente usan la tecnología de broadcast: un solo cable con todas las máquinas conectadas.
· El tamaño es restringido, así el tiempo de transmisión del peor caso es conocido.
· Velocidades típicas son de 10 a 100 Mbps (megabits por segundo; un megabit es 1.000.000 bits,
no 220).

· WANs
· Consisten en una colección de hosts (máquinas) o LANs de hosts conectados por una subred.
· La subred consiste en las líneas de transmisión y los ruteadores, que son computadores dedicados
a cambiar de ruta.
· Se mandan los paquetes de un ruteador a otro. Se dice que la red es packet-switched (paquetes
ruteados) o store-and-forward (guardar y reenviar).

Internet
· Una internet es una red de redes vinculadas por gateways, que son computadores que pueden
traducir entre formatos incompatibles.
· La Internet es un ejemplo de una internet.

Redes inalámbricas
· Una red inalámbrica usa radio, microondas, satélites, infrarrojo, u otros mecanismos para
comunicarse.
· Se pueden combinar las redes inalámbricas con los computadores móviles, pero los dos conceptos
son distintos:
Inalámbrico       Móvil                   Aplicación
No                           No                         Workstations estacionarias
No                           Sí                           Uso de un portable en un hotel
Sí                             No                         LANs en un edificio antiguo sin cables
Sí                             Sí                           PDA (personal digital assistant) para inventario

Powered by WordPress | Compare Cell Phone Plans at iCellPhonePlans.com | Thanks to Cheap Palm Pixi, Bromoney and Wordpress Themes