none
usar la letra arroba para un metodo??

    Question

  • hola a todos hago esta pregunta para saber si es carrecto declarar asi un parametro aqui esta la clase

    public class ServerReport
        {
            private string entidad;
            private bool status;
            private string tipoExcepcion;
            private string excepcion;
            private DateTime fechaHora;
    
            public string Entidad
            { get { return this.entidad; } }
    
            public bool Status
            { get { return this.status; } }
    
            public string TipoExcepcion
            { get { return this.tipoExcepcion; } }
    
            public string Excepcion
            { get { return this.excepcion; } }
    
            public DateTime FechaHora
            { get { return this.fechaHora; } }
    
            public ServerReport(string @Entidad, bool @Status)
            {
                entidad = @Entidad;
                status = @Status;
                tipoExcepcion = "No aplica";
                excepcion = "No aplica";
                fechaHora = DateTime.Now;
            }
        }

    pueden ver el metodo constructor con dos parametros les puse el caracter @, pero no se si sea correcto, esto lo hago por que las propiedades privadas las declaro en minuscula y las y los metodos propiedas get  los hago con mayusculas, entonces para no cambiar la palabra o abreviarla les puse @ al principio, pero no se si sea correcto
    Thursday, November 08, 2012 7:37 PM

Answers

  • por eso no puedo asignar propiedad publica

    si puedes hacerlo

    public string Entidad {get; private set; }

    define el set como privado y no necesitas ninguna variable privada para la propiedad

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    • Edited by Leandro TuttiniMVP Thursday, November 08, 2012 8:39 PM
    • Marked as answer by niqel Friday, November 09, 2012 3:30 PM
    Thursday, November 08, 2012 8:22 PM

All replies

  • hola a todos hago esta pregunta para saber si es carrecto declarar asi un parametro aqui esta la clase

    no esta para anda correcto, porque quieres usar el @ para el nombre de una variable no tiene sentido

    no se necesitas dfiferenciar los parametros de un metodo, la convencion dice que las variables deben ir con la primer lebra en minicula

    public ServerReport(string entidad, bool status)

    o de ultima si quieres diferenciarlo podria ser

    public ServerReport(string entidadParam, bool statusParam)

    esto lo hago por que las propiedades privadas las declaro en minuscula y las y los metodos propiedas get  los hago con mayusculas

    pero no tienes que asignar las propeidades privadas asigna la propiedad

            public ServerReport(string entidad, bool status)
            {
                this.Entidad = entidad;
                this.Status = status;
                tipoExcepcion = "No aplica";
                excepcion = "No aplica";
                fechaHora = DateTime.Now;
            }

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Thursday, November 08, 2012 7:48 PM
  • lo que pasa leandro es que quiero que sean de solo lectura

    por eso no puedo asignar propiedad publica

    quiero que la unica manera de ponerles valores sea por medio del constructor y pues por eso se le asigna a la propiedad privada

    ahora me queda una duda, si en el metodo el parametro que escribo se llama exactamente igual que la propiedad privada, no genera error

    el c# sabe distinguirlos.

    Thursday, November 08, 2012 7:54 PM
  • por eso no puedo asignar propiedad publica

    si puedes hacerlo

    public string Entidad {get; private set; }

    define el set como privado y no necesitas ninguna variable privada para la propiedad

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    • Edited by Leandro TuttiniMVP Thursday, November 08, 2012 8:39 PM
    • Marked as answer by niqel Friday, November 09, 2012 3:30 PM
    Thursday, November 08, 2012 8:22 PM
  • lo que pasa leandro es que quiero que sean de solo lectura

    por eso no puedo asignar propiedad publica

    quiero que la unica manera de ponerles valores sea por medio del constructor y pues por eso se le asigna a la propiedad privada

    ahora me queda una duda, si en el metodo el parametro que escribo se llama exactamente igual que la propiedad privada, no genera error

    el c# sabe distinguirlos.

    si solo quieres que sean de lectura, puedes hacerlo de la siguiente manera.

    public class MyClass
    {
        public MyClass(int p1)
        {
            this.P1 = p1;
        }
        
        private int p1;
        public int P1
        {
           get { return this.p1; }
           private set { this.p1 = value; }
        } 
    }

    o

    public class MyClass
    {
        public MyClass(int p1)
        {
             this.P1 = p1;
        }
        
        public int P1
        {
           get;
           private set;
        }
    }

    de esta manera la propiedad "P1" sera de solo lectura donde la uses, pero internamente en ella podras cambiar el valor de la propiedad, en el segundo caso te dira que la propiedad P1 su set es inaccesible.

    Salu2,


    Marvin E. Pineda

      ComboBoxMultiColumns

     NetBarControl

      TextEditor

    Thursday, November 08, 2012 8:28 PM
    Moderator