¿Cómo limito la longitud de una propiedad string de una clase?

publicado por: Anonymous

Tengo una estructura de datos que estoy tratando de representar por medio de unas clases (windows forms), pero tengo la inquietud en saber si puedo restringir la longitud de las cadenas que van a ingresar.

Ahora, una clase ejemplo como lo estoy representando sería la siguiente:

public class RipsAF
{
    public string CodigoPrestador { get; set; }
    public string NombreProveedor { get; set; }
    public string TipoIdentificacion { get; set; }
    public string NumeIdentificacion { get; set; }
    public string NumFactura { get; set; }
}

Pero, por ejemplo, quiero restringir la propiedad CodigoPrestador donde no soporte cadenas de más de 10 carácteres.

solución

Si quieres implementar algo de lógica en las propiedades de tu clase, NO debes usar Propiedades Autoimplementadas. Debes definir un campo (field) y luego escribir tu propiedad. Después de ello en el setter establecer la lógica que requieras (en tu caso validar el tamaño) y lanzar una excepción o descartar el valor no válido. Te pongo únicamente el ejemplo en la propiedad CodigoPrestador

public class RipsAF
{
    private string _codigoPrestador;
    public string CodigoPrestador 
    { 
      get { return _codigoPrestador; }
      set
      { 
         if(value.Length > 10) throw new InvalidOperationException("Longitud de Código Prestador no válida");
         _codigoPrestador = value;
      }
    }
    public string NombreProveedor { get; set; }
    public string TipoIdentificacion { get; set; }
    public string NumeIdentificacion { get; set; }
    public string NumFactura { get; set; }
}
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *