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
You can leave a response, or trackback from your own site.

4 Responses to “Delegados en visual basic.net y c#”

  1. Webmaster says:

    Hello! Please e-mail me your contacts. I have a question webmaster@complective.ru” rel=”nofollow”>……

    Thank you!!!…

  2. JARED says:


    Pillspot.org. Canadian Health&Care.Special Internet Prices.Best quality drugs.No prescription online pharmacy. Online Pharmacy. Buy drugs online

    Buy:Nymphomax.Zocor.Lipitor.Benicar.Prozac.Aricept.SleepWell.Acomplia.Buspar.Lipothin.Wellbutrin SR.Ventolin.Female Pink Viagra.Advair.Seroquel.Zetia.Amoxicillin.Lasix.Cozaar.Female Cialis….

  3. HUBERT says:


    Medicamentspot.com. Canadian Health&Care.No prescription online pharmacy.Best quality drugs.Special Internet Prices. High quality drugs. Buy drugs online

    Buy:SleepWell.Advair.Prozac.Lasix.Benicar.Seroquel.Buspar.Ventolin.Lipitor.Female Cialis.Zetia.Acomplia.Zocor.Amoxicillin.Lipothin.Wellbutrin SR.Cozaar.Aricept.Nymphomax.Female Pink Viagra….

  4. FRANK says:


    Medicamentspot.com. Canadian Health&Care.Best quality drugs.No prescription online pharmacy.Special Internet Prices. Online Pharmacy. Buy drugs online

    Buy:Lipitor.Acomplia.SleepWell.Wellbutrin SR.Cozaar.Zetia.Ventolin.Aricept.Buspar.Female Cialis.Female Pink Viagra.Lipothin.Seroquel.Benicar.Nymphomax.Prozac.Amoxicillin.Lasix.Advair.Zocor….

Leave a Reply

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