none
Variaveis globais em C# RRS feed

  • Pergunta

  • Bom dia!

    Estou com uma dúvida, estou desenvolvendo um pequeno sistema, nele possuo um cadastro de empresa com as informações básicas da mesma. Tenho uma rotina de venda que no final vou gerar um recibo da venda.

    Pergunta: Eu consigo buscar as informações da empresa (Nome, cnpj, endereço...etc) quando inicio o sistema mas tem como disponibiliza-la para qualquer outro form? No meu caso que usar essas informações para imprimir no recibo e acho desnecessário toda vez que emitir um recibo, buscar essas informações no banco.

    Desde já agradeço.

    quarta-feira, 18 de maio de 2016 15:23

Respostas

  • Bom dia amigo. Você pode criar uma classe comum (normalmente o povo chama de Util) e nela declarar atributos estáticos, por exemplo:

    public static string nome = "Acme";

    De qualquer form que você quiser acessar essa essa informação, não será preciso instanciar, basta escrever Util. que o intelicense vai lhe oferecer todos os atributos disponíveis, no caso, o nome foca assim:

    Querendo obter o valor:

    string empresa;

    empresa = Util.nome;

    se quiser alterar o valor (que ficará disponível para todos os forms):

    Util.nome = empresa;

    O problema é como criar as associações que você precisa sem usar um banco de dados, porque serão várias empresas com vários nomes, etc. Pra não usar o banco, talvez você precise usar listas (que também podem ser estáticas) pra organizar os valores, mas acho que, no seu caso, o banco é indispensável. Normalmente o uso dessa classe Util se justificaria se fosse aberto o registro de UMA ÚNICA empresas, todos os seus dados fossem transferidos para Util e aí eles seriam consultados a partir dela, ou seja, se você puxar a ACME, será carregados endereço, CNPJ, etc., de ACME, aí TODOS os forms poderão consultaro os dados de ACME a partir de útil (impressão, alteração de dados, etc...).

    Abraço!

    • Marcado como Resposta Marcos SJ quarta-feira, 18 de maio de 2016 16:36
    quarta-feira, 18 de maio de 2016 15:46

Todas as Respostas

  • Bom dia amigo. Você pode criar uma classe comum (normalmente o povo chama de Util) e nela declarar atributos estáticos, por exemplo:

    public static string nome = "Acme";

    De qualquer form que você quiser acessar essa essa informação, não será preciso instanciar, basta escrever Util. que o intelicense vai lhe oferecer todos os atributos disponíveis, no caso, o nome foca assim:

    Querendo obter o valor:

    string empresa;

    empresa = Util.nome;

    se quiser alterar o valor (que ficará disponível para todos os forms):

    Util.nome = empresa;

    O problema é como criar as associações que você precisa sem usar um banco de dados, porque serão várias empresas com vários nomes, etc. Pra não usar o banco, talvez você precise usar listas (que também podem ser estáticas) pra organizar os valores, mas acho que, no seu caso, o banco é indispensável. Normalmente o uso dessa classe Util se justificaria se fosse aberto o registro de UMA ÚNICA empresas, todos os seus dados fossem transferidos para Util e aí eles seriam consultados a partir dela, ou seja, se você puxar a ACME, será carregados endereço, CNPJ, etc., de ACME, aí TODOS os forms poderão consultaro os dados de ACME a partir de útil (impressão, alteração de dados, etc...).

    Abraço!

    • Marcado como Resposta Marcos SJ quarta-feira, 18 de maio de 2016 16:36
    quarta-feira, 18 de maio de 2016 15:46
  • Show! Fiz dessa forma e deu certo, obrigado!
    quarta-feira, 18 de maio de 2016 17:40