Delegados en C#
Publicado por Edith (1 intervención) el 25/03/2012 07:05:58
Como funciona un métodos delegados en C# , quiero hacerlos con una ordenacion burbuja de un arreglo de strings, lo hice de la siguiente forma pero como cambio los parametros de int a strings.
public delegate string MetodoDelegado(string [] cadenas);
public class Operaciones
{
public static string[] Ordernar(string[] cadenas)
{
for (int i = 1; i < cadenas.Length; i++)
for (int j = 0; j <= i; j++)
if (cadenas[i].CompareTo(cadenas[j]) < 0)
{
string temp = cadenas[i];
cadenas[i] = cadenas[j];
cadenas[j] = temp;
}
return cadenas;
}
}
// Y la otra clase:
class Class1
{
static void Main(string[] args)
{
MetodoDelegado delegadoOrdenar = new MetodoDelegado(Operaciones.Ordernar);
string[] cadenas = { "hola", "ale", "dot", "net", "aXD", "zzz", "lol" };
Console.WriteLine("Desordenadas:");
foreach (string s in cadenas)
Console.WriteLine(delegadoOrdenar(s));
cadenas = Operaciones.Ordernar(cadenas);
Console.WriteLine("\nOrdenadas:");
foreach (string s in cadenas)
Console.WriteLine(delegadoOrdenar(s));
Console.ReadKey();
}
}
-------------------------------------------Me dice los siguientes errores:
Error 1 'string[] de Operaciones.Ordernar(string[])' es un tipo de valor devuelto equivocado
Error 2 El delegado 'MetodoDelegado' tiene algunos argumentos no válidos
Error 3 Argumento 1: no se puede convertir de 'string' a 'string[]'.
Error 4 El delegado 'MetodoDelegado' tiene algunos argumentos no válidos
public delegate string MetodoDelegado(string [] cadenas);
public class Operaciones
{
public static string[] Ordernar(string[] cadenas)
{
for (int i = 1; i < cadenas.Length; i++)
for (int j = 0; j <= i; j++)
if (cadenas[i].CompareTo(cadenas[j]) < 0)
{
string temp = cadenas[i];
cadenas[i] = cadenas[j];
cadenas[j] = temp;
}
return cadenas;
}
}
// Y la otra clase:
class Class1
{
static void Main(string[] args)
{
MetodoDelegado delegadoOrdenar = new MetodoDelegado(Operaciones.Ordernar);
string[] cadenas = { "hola", "ale", "dot", "net", "aXD", "zzz", "lol" };
Console.WriteLine("Desordenadas:");
foreach (string s in cadenas)
Console.WriteLine(delegadoOrdenar(s));
cadenas = Operaciones.Ordernar(cadenas);
Console.WriteLine("\nOrdenadas:");
foreach (string s in cadenas)
Console.WriteLine(delegadoOrdenar(s));
Console.ReadKey();
}
}
-------------------------------------------Me dice los siguientes errores:
Error 1 'string[] de Operaciones.Ordernar(string[])' es un tipo de valor devuelto equivocado
Error 2 El delegado 'MetodoDelegado' tiene algunos argumentos no válidos
Error 3 Argumento 1: no se puede convertir de 'string' a 'string[]'.
Error 4 El delegado 'MetodoDelegado' tiene algunos argumentos no válidos
Valora esta pregunta


0