• Domingo 22 de Diciembre de 2024, 04:06

Autor Tema:  Conocer .net  (Leído 2840 veces)

AlejandroRe

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Conocer .net
« en: Viernes 22 de Junio de 2007, 15:29 »
0
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.

Neopro

  • Miembro MUY activo
  • ***
  • Mensajes: 316
    • Ver Perfil
Re: Conocer .net
« Respuesta #1 en: Viernes 22 de Junio de 2007, 16:03 »
0
No entendi bien la pregunta....
              [size=109]"Has lo que digo y no hagas lo que hago"[/size]

AlejandroRe

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Conocer .net
« Respuesta #2 en: Viernes 22 de Junio de 2007, 16:52 »
0
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"

Neopro

  • Miembro MUY activo
  • ***
  • Mensajes: 316
    • Ver Perfil
Re: Conocer .net
« Respuesta #3 en: Viernes 22 de Junio de 2007, 17:08 »
0
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....
              [size=109]"Has lo que digo y no hagas lo que hago"[/size]

AlejandroRe

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Conocer .net
« Respuesta #4 en: Viernes 22 de Junio de 2007, 17:19 »
0
Me podrías poner un ejemplo parecido al que puse anteriormente....

Neopro

  • Miembro MUY activo
  • ***
  • Mensajes: 316
    • Ver Perfil
Re: Conocer .net
« Respuesta #5 en: Viernes 22 de Junio de 2007, 17:52 »
0
En un nuevo archivo .cs creas la clase.

La llamas asi (no es necesario):

Código: Text
  1. nombre_clase.MiCadena Cad = new nombre_clase.MiCadena();
  2.  

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
  1. public string MiCadena (string cadena)
  2. {
  3. string cadena_resultante;
  4.  
  5. //Acá que saque lo que sobra
  6.  
  7. return cadena_resultante;
  8. }
  9.  

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
  1. string resultado = nombre_clase.MiCadena(" una cadena ");
  2.  

Es lo que entiendo que quieres hacer.

Suerte.
              [size=109]"Has lo que digo y no hagas lo que hago"[/size]

AlejandroRe

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Conocer .net
« Respuesta #6 en: Viernes 22 de Junio de 2007, 19:01 »
0
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 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

Neopro

  • Miembro MUY activo
  • ***
  • Mensajes: 316
    • Ver Perfil
Re: Conocer .net
« Respuesta #7 en: Viernes 22 de Junio de 2007, 20:29 »
0
Ok.
              [size=109]"Has lo que digo y no hagas lo que hago"[/size]

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Conocer .net
« Respuesta #8 en: Sábado 23 de Junio de 2007, 16:57 »
0
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.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io