CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: AlejandroRe en Viernes 22 de Junio de 2007, 15:29
Título: Conocer .net
Publicado por: AlejandroRe en Viernes 22 de Junio de 2007, 15:29
La pregunta que voy a hacer quizás no tenga sentido y no se pueda hacer, pero es una idea que se me ocurre. Se podría en C# implementar una clase que tenga X cantidad de propiedades, pero una que sea por defecto(por llamarlo de una manera), que si no se especifica el nombre de ninguna propiedad que coja esa. voy a poner un ejemplo de lo que quiero decir. supongamos que tengo la siguiente clase con sus propiedades.
clase MiClase { int numero; string cadena;
public Numero { //codigo }
public string Cadena { //Codigo } }
De alguna manera declarar la propiedad Cadena por defecto y después poder hacer cosas con estas.
MiClase obj = new MiClase(); //Si no se especifica ninguna propiedad cojo Cadena obj = "Una Cadena";
Quizás exista algún atributo que me permita hacer esto.
Título: Re: Conocer .net
Publicado por: Neopro en Viernes 22 de Junio de 2007, 16:03
No entendi bien la pregunta....
Título: Re: Conocer .net
Publicado por: AlejandroRe en Viernes 22 de Junio de 2007, 16:52
vomos a poner mas directamente que es lo que yo quiero. Quiro implemtar una clase que lo único que tenga es un String y que a ese string le aplique ciertos formatos por ejemplo eliminarle los espacios imnecesarios, los que están al inicio, alfinal y entre palabras dejar un solo espacio. Como esa clase lo único que va a tener es una propiedad lograr que esa clase se comporte como un string normal. Y entonces poder hacer cosas como estas.
//De esta forma crearía mi objeto... MiCadena Cad = " una cadena "; //Luego si imprimo esa cadena la pondría sin los espacios. Console.WriteLine(Cad); //imprimiría "una cadena"
Título: Re: Conocer .net
Publicado por: Neopro en Viernes 22 de Junio de 2007, 17:08
Si se puede, debes crear la clase, y decirle que te retorne las modificaciones.
Que la clase se encargue de todo lo que necesitas que realice, puede ser una funcion, una clase, etc....
Título: Re: Conocer .net
Publicado por: AlejandroRe en Viernes 22 de Junio de 2007, 17:19
Me podrías poner un ejemplo parecido al que puse anteriormente....
Título: Re: Conocer .net
Publicado por: Neopro en Viernes 22 de Junio de 2007, 17:52
En un nuevo archivo .cs creas la clase.
La llamas asi (no es necesario):
Código: Text
nombre_clase.MiCadena Cad = new nombre_clase.MiCadena();
Luego debes crear la funcion mi cadena que reciba un valor y devuelva el resultado en otra archivo.cs, form, o clase:
Código: Text
public string MiCadena (string cadena)
{
string cadena_resultante;
//Acá que saque lo que sobra
return cadena_resultante;
}
Luego asignas la cadena al resultado, aunque no es necesario el primer paso para llamarla, eso es en el caso de que quieras que se ejecute la funcion.
Código: Text
string resultado = nombre_clase.MiCadena(" una cadena ");
Es lo que entiendo que quieres hacer.
Suerte.
Título: Re: Conocer .net
Publicado por: AlejandroRe en Viernes 22 de Junio de 2007, 19:01
Hace como dos días estaba con este problema pero no sabia como podía preguntar lo que quería. Después de hacer el primer post a este foro se me ocurrio que se podría resolver el problema con la sobrecarga de operadores, y busque esto en el google y me salio esta página www.elguille.info/NET/cursoCSharpErik/E ... rega12.htm (http://www.elguille.info/NET/cursoCSharpErik/Entrega12/Entrega12.htm) ahí viene un ejemplo de una clase Metros y otra Centimetros que me vienen de anillo al dedo.
No obstante muchas gracias por tu ayuda. :lol:
no pongo el link porque no me lo permite
Título: Re: Conocer .net
Publicado por: Neopro en Viernes 22 de Junio de 2007, 20:29
Ok.
Título: Re: Conocer .net
Publicado por: JuanK en Sábado 23 de Junio de 2007, 16:57
Si, en efecto l manera de hacerlo es sobrecargando el operador 'cast' de la clase, sin embargo hasta ese punto de devolver una propiedad 'por defecto' no es muy bueno hacerlo pues pareceriera que quieres usar a C# como si fuera vb 6.0. :scream: y eso complicara la legibilidad de tu codigo incluso para ti mismo en el futuro.