Código de Visual CSharp .NET - Delegados y Eventos, propiedad de evento, como usar descriptores de eventos

Imágen de perfil

Delegados y Eventos, propiedad de evento, como usar descriptores de eventosgráfica de visualizaciones


Visual CSharp .NET

Publicado el 3 de Septiembre del 2021 por Rafael Angel (81 códigos)
539 visualizaciones desde el 3 de Septiembre del 2021
/// Como usar descriptores de acceso de eventos.
///
/// Las propiedades de eventos funcionan igual que una propiedad
/// común y corriente de cualquier class.
/// Con una diferencia, siempre se llaman: "add" y "remove".
///
/// "add" se invoca cuando al agregar un nuevo controlador de eventos con "+=".
///
/// "remove" se invoca al quitar o remover un controlador de eventos con "-=".
///
/// Para almacenar los Controladores de eventos
/// se puede usar una lista enlazada, una matriz.

Requerimientos

Visual Studio 2017 o superior.

1.0

Publicado el 3 de Septiembre del 2021gráfica de visualizaciones de la versión: 1.0
540 visualizaciones desde el 3 de Septiembre del 2021
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Es parte de mi aprendizaje en C#. Actualmente ya voy por temas avanzados de C#.
Realmente es el lenguaje que andaba buscando aprender desde hace mucho.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
namespace Como_usar_descriptores_de_acceso_de_eventos
    {
        public delegate void Delegado_plantilla_de_evento(int nuevo_numero);
 
        public class Contenido_del_evento
        {
            public Contenido_del_evento()
            {
                System.Console.WriteLine("Iniciando evento");
            }
            public void Evento(int nuevo_numero)
            {
                System.Console.WriteLine(nuevo_numero);
            }
 
            public void Evento2(int nuevo_numero)
            {
                if (nuevo_numero == 4)
                {
                    System.Console.WriteLine("Evento 2 activado con el numero " + nuevo_numero);
                }
 
            }
        }
 
 
        public class Edades
        {
 
            public event Delegado_plantilla_de_evento Evento;
 
            /// <summary>
            /// Conteo de los indices de la matriz "mProcedimeintos_de_eventos".
            /// </summary>
            private int Contador = 0;
 
            private Delegado_plantilla_de_evento[]mProcedimeintos_de_eventos= { null,null};
            /// <summary>
            /// Esta propiedad de evento es para que el evento llamado "Evento",
            /// pueda tener tantos procedimientos de eventos como se quiera.
            ///
            /// </summary>
            private event Delegado_plantilla_de_evento PrEvento
            {
                add
                {
                    //Me toco que crear el codigo interno del bloque add.
                    //Porque no venia en la Biblia del C#.
                    if(Contador<= mProcedimeintos_de_eventos.Length - 1)
                    {
                        mProcedimeintos_de_eventos[Contador] = value;
                    }
                    else
                    {
                        //El contador vuelve a cero o se indica al programador que ha llegado al maximo permitido.
                    }
                    Contador++;
                }
                remove
                {
                    //Tambien me toco que crearle este codigo interno basado en la logica
                    //e intuicion de lo que me da a entender el libro.
                    for (int i=0; i<=mProcedimeintos_de_eventos.Length - 1; i++)
                    {
                        try
                        {
                            if(mProcedimeintos_de_eventos[i] == value)
                            {
                                mProcedimeintos_de_eventos[i] = null;
                            }
                        }
                        catch (Exception)
                        {
                            //Uno o todos los campos de la matriz son nulos.
                        }
                    }
                }
            }
 
            /// <summary>
            /// procedimiento public, al llamarlo activa el evento con sus
            /// procedimientos de eventos.
            /// </summary>
            public Edades()
            {
                //Clase con los procedimientos de eventos.
                Contenido_del_evento Contenido = new Contenido_del_evento();
 
                //Procedimiento de evento 1 agregado.
                Evento += new Delegado_plantilla_de_evento(Contenido.Evento);
 
                //Procedimiento de evento 2 agregado.
                Evento += new Delegado_plantilla_de_evento(Contenido.Evento2);
            }
 
            public void Contar()
            {
                for(int i = 1; i <= 4; i++)
                {
                    Evento(i);
                }
            }
        }
    }//Fin del namespace Como_usar_descriptores_de_acceso_de_eventos



Comentarios sobre la versión: 1.0 (0)


No hay comentarios
 

Comentar la versión: 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s7150