¿Cómo implementar un servidor proxy en la programación de software C#?
Si tiene experiencia en programación de C++, entonces este problema es muy simple: el delegado en C# y el puntero de función en C++ son básicamente lo mismo, y C# implementa el puntero de función en forma de delegado. . La diferencia es que los delegados en C# tienen seguridad de tipos.
No importa si no tienes conocimientos previos de C o C++.
Para entender Delegate, primero que nada, debes entender que es una clase, que es un concepto de nivel con Class. La diferencia es que la definición de Class incluye campos y métodos, mientras que delegado solo incluye. los detalles del método.
Definir Delegado:
public delegado bool CompareDelegate(int a, int b
El significado de la declaración anterior es: cuando una instancia de un delegado); está definido. Estas instancias deben contener un nombre de método, y este método debe tener dos parámetros int y debe devolver un valor bool.
Bien, ahora crea una instancia del delegado definido anteriormente
public CompareDelegate myCompare = new CompareDelegate(CompareMethod);
El CompareMethod interno es un método:
Se define de la siguiente manera:
public static bool CompareMethod(int x , int y)
{
bool result = x > y ? verdadero: falso;
devuelve resultado;
}
Cómo usarlo
int a = 10; >
int b = 15;
bool isBigger = myDelegate(a, b);
El siguiente es el código completo:
using System;
usando System.Collections.Generic
usando System.Text
usando Common
espacio de nombres ConsoleApplication8
{
//Definir delegado
public delegado bool CompareDelegate(int a, int b
clase pública MyCompare
); {
{
p>
///
/// Definir un método que cumpla con los detalles del método requeridos por el delegado definido arriba El valor de retorno es de tipo bool y los dos parámetros son de tipo int
///
/// <. /param>
///
///
público bool estático CompareMethod(int x, int y)
{
resultado bool = x > y verdadero: falso
devuelve resultado
}
}
programa de clase
{
static void Main(string[] args)
{
//Crea una instancia del delegado e inicialízalo.
Tenga en cuenta que al inicializar, debe contener el nombre de un método, y este método debe ajustarse a la firma (tipo de parámetro y valor de retorno) cuando se definió originalmente el delegado
CompareDelegate myDelegate = new CompareDelegate(MyCompare. CompareMethod);
//Ahora usamos la instancia delegada para comparar los tamaños de dos números a y b
int a = 10
int b =; 15;
bool esMás grande = myDelegate(a, b);
Console.WriteLine(" a > b ?: " + esMás grande); Read();
p>}
}
}
¿No es demasiado simple?
¿Para qué se utilizan los delegados en C#? Por supuesto, no se utilizan para implementar programas para personas con retraso mental como el anterior. Mencionar delegación en C# generalmente lleva a otro término: evento. La implementación de eventos en C# depende de los delegados. Los eventos son un concepto muy importante. Sólo comprendiendo verdaderamente la delegación podremos sentar una base sólida y comprender verdaderamente los eventos.
Espero que esto ayude