none
Propriedade em class c# RRS feed

  • Pergunta

  • ola pessoal estou com uma duvida aqui . segue.<br/>
    <br/>
     <br/>
        public int StatusCode
        {
          get
          {
            return _StatusCode;
          }
          set
          {
            _StatusCode = value;
          }
        }
    
        private <T> Entity ;
    

    no caso minha duvida é como receber nesta propriedade  qualquer classe

     private <T> Entity ; <<<<<< aqui

    se alguem sober como fazer  =)

    domingo, 19 de dezembro de 2010 00:49

Respostas

  • Amigo, entenda que apesar de parecer, a sua classe não ta herdando outras. você está atribuindo uma classe a outra para que ela possa ser utilizada. Então alem de receber a classe, você precisa fazer algo com ela, no caso criar um tipo dela para que possa ser acessada, como no exemplo:

      public class TransactionStatus<T> where T : class
      {
        private string _StatusName;
    
        public string StatusName
        {
          get
          {
            return _StatusName;
          }
          set
          {
            _StatusName = value;
          }
        }
    
        private int _StatusCode;
    
        public int StatusCode
        {
          get
          {
            return _StatusCode;
          }
          set
          {
            _StatusCode = value;
          }
        }
    
        //Cria tipo da classe passada pelo generics
        public T classe { get; set; }
        public List<T> Lista_Classe { get; set; }
      }
    
      public class Usuario
      {
        public int Id { get; set; }
        public string Nome { get; set; }
      }
    
      public class Class1
      {
        TransactionStatus<Usuario> usu = new TransactionStatus<Usuario>();
        
        private void metodo1()
        {
          usu.classe.Id = 1;
          usu.Lista_Classe = new List<Usuario>();
          usu.Lista_Classe.Add(new Usuario { Id = 1, Nome = "Olavo" });
        }
      }
    

    Olavo Oliveira Neto
    Se for útil marque como resposta e faça um Developer feliz :)
    • Marcado como Resposta leandro.abade domingo, 19 de dezembro de 2010 15:50
    domingo, 19 de dezembro de 2010 15:14
    Moderador

Todas as Respostas

  • Leandro,

    Não entendi o que vc esta querendo fazer..

    Voce quer atribuir um valor pra propriedade StatusCode ou vc quer atribuir um valor pra variavel Entity ?


    se a resposta foi útil, classifique :)
    ate mais,

    Rodrigo Soria
    domingo, 19 de dezembro de 2010 01:01
  • Leandro, você quer atribuir uma classe para outra ? isto você tem de fazer através do generics no nome da classe, por exemplo:

      public class Controle<t>
      {
        private int _StatusCode;
        public int StatusCode
        {
          get
          {
            return _StatusCode;
          }
          set
          {
            _StatusCode = value;
          }
        }
    
    
        public t entity { get; set; }
      }
    
      public class Class1
      {
        Controle<Class1> c = new Controle<Class1>();
        private void metodo1()
        {
          c.StatusCode = 1;
        }
      }
    

    Olavo Oliveira Neto
    Se for útil marque como resposta e faça um Developer feliz :)
    • Sugerido como Resposta Rodrigo Sória domingo, 19 de dezembro de 2010 02:58
    domingo, 19 de dezembro de 2010 02:06
    Moderador
  • ola quero  fazer con que eu possa passar qualuqe classe no

     private
     <T> Entity ;

    como se fosse um List<T> Lista ;

    ojeto "T" recebe qualquer.

    O PROBLEMA É FAZER COM  PROPRIEDADE.

    ABRAÇOS.

    domingo, 19 de dezembro de 2010 03:06
  • Leandro,

    Atribuir um valor do tipo <T> pra uma propriedade sem que a classe receba um tipo imagino que nao é possivel.

    A possibilidade é usar dessa forma abaixo caso vc queira realmente um propriedade generica sem que seja do tipo List, Dictionary etc.

    using System;
    
    namespace ConsoleApplication1
    {
      class Program
      {
        static void Main(string[] args)
        {
          MinhaPropriedadeGenerica<int> tipoInt = new MinhaPropriedadeGenerica<int>();
          tipoInt.Valor = 100;
    
          MinhaPropriedadeGenerica<string> tipoString = new MinhaPropriedadeGenerica<string>();
          tipoString.Valor = "Meu Valor String";
    
          MinhaPropriedadeGenerica<object> tipoObject = new MinhaPropriedadeGenerica<object>();
          tipoObject.Valor = 500;
          tipoObject.Valor = "Meu Valor Object";
          tipoObject.Valor = DateTime.Now;
    
          MinhaPropriedadeGenerica<MinhaClasse> tipoClasse = new MinhaPropriedadeGenerica<MinhaClasse>();
          tipoClasse.Valor = new MinhaClasse();
        }
      }
    
      class MinhaClasse
      {
        // Vazia
      }
    
      class MinhaPropriedadeGenerica<T>
      {
        public T Valor { get; set; }
      }
    }
    
    



    se a resposta foi útil, classifique :)
    ate mais,

    Rodrigo Soria
    domingo, 19 de dezembro de 2010 03:51
  • Ola ainda nao entendi mas vou passar meu codigo mais especificamente.

    public class TransactionStatus<T> where T : class
      {
        private string _StatusName;
    
        public string StatusName
        {
          get
          {
            return _StatusName;
          }
          set
          {
            _StatusName = value;
          }
        }
    
        private int _StatusCode;
    
        public int StatusCode
        {
          get
          {
            return _StatusCode;
          }
          set
          {
            _StatusCode = value;
          }
        }
    
      }
    

    esta é a classe TransactionStatus  ele sempre tem que herdar as pro priedades da classe que eu passar nela ex:

     TransactionStatus<ConsultaCep> cepp = new TransactionStatus<ConsultaCep>
    
    

    so que nao vejo as propriedades da classe de CEP  elas nao aparecen mesmo sendo publicas

     

    domingo, 19 de dezembro de 2010 13:25
  • Amigo, entenda que apesar de parecer, a sua classe não ta herdando outras. você está atribuindo uma classe a outra para que ela possa ser utilizada. Então alem de receber a classe, você precisa fazer algo com ela, no caso criar um tipo dela para que possa ser acessada, como no exemplo:

      public class TransactionStatus<T> where T : class
      {
        private string _StatusName;
    
        public string StatusName
        {
          get
          {
            return _StatusName;
          }
          set
          {
            _StatusName = value;
          }
        }
    
        private int _StatusCode;
    
        public int StatusCode
        {
          get
          {
            return _StatusCode;
          }
          set
          {
            _StatusCode = value;
          }
        }
    
        //Cria tipo da classe passada pelo generics
        public T classe { get; set; }
        public List<T> Lista_Classe { get; set; }
      }
    
      public class Usuario
      {
        public int Id { get; set; }
        public string Nome { get; set; }
      }
    
      public class Class1
      {
        TransactionStatus<Usuario> usu = new TransactionStatus<Usuario>();
        
        private void metodo1()
        {
          usu.classe.Id = 1;
          usu.Lista_Classe = new List<Usuario>();
          usu.Lista_Classe.Add(new Usuario { Id = 1, Nome = "Olavo" });
        }
      }
    

    Olavo Oliveira Neto
    Se for útil marque como resposta e faça um Developer feliz :)
    • Marcado como Resposta leandro.abade domingo, 19 de dezembro de 2010 15:50
    domingo, 19 de dezembro de 2010 15:14
    Moderador
  • Agora sim consegui oque eu queria  obrigado  =)
    domingo, 19 de dezembro de 2010 15:50