Ivo Pereira Posted December 23, 2009 at 02:18 PM Report Share #302029 Posted December 23, 2009 at 02:18 PM Boas pessoal, se é coisa que eu nunca utilizei muito, foram as funções, isto porque "nunca soube" como as organizar. Isto é, imaginem que para ter o código mais limpo, quero separar as funções do resto do código, mas isso não era suposto pôr as funções em classes? E a partir daí poder utilizá-las em qualquer sítio do código principal? Alguém me explique, pois ainda não consegui fazer isto 🙂 Abraço 😉 Link to comment Share on other sites More sharing options...
ribeiro55 Posted December 23, 2009 at 02:28 PM Report Share #302032 Posted December 23, 2009 at 02:28 PM Não precisam de estar em classes diferentes. Imagina o seguinte: Na mesma classe, digamos, um form, tens 20 textboxes que precisas de activar ou desactivar em muitos pontos na tua lógica. Tradicionalmente, terias de escrever os 20 Enabled=True ou Enabled=False sempre que precisasses. Se tiveres, na mesma classe, um bloco de código único que aceite um argumento boolean, por exemplo, bastaria escrever todos os enabled=argumento uma única vez. A partir daí, sempre que precisasses de activar fazias apenas ActivaDesactivaMinhasTextBoxes(True) e para desactivar ActivaDesactivaMinhasTextBoxes(False). É mais uma questão de reutilização de código (e consequente arrumação e organização) do que outra coisa. Se as funções ou subs estiverem numa classe, é mais bonito chamar-lhes métodos. Terás de pensar neles como acções, uma acção que determinada classe faz internamente e que pode e precisa de ser chamada um milhão de vezes. Se queres métodos que estejam disponíveis em qualquer ponto do código, estás à procura de métodos estáticos (aqui no VB chama-se "Shared"). Para escolheres entre uma sub e uma function tens apenas que fazer a pergunta a ti mesmo: "O que este método vai processar, devolve algum resultado?" Se a resposta for positiva, procuras uma FUNCTION. Se a resposta for negativa, procuras um simples SUB Avança para uma pergunta mais específica pois este é um assunto com pano para mangas. Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
Ivo Pereira Posted December 23, 2009 at 02:31 PM Author Report Share #302033 Posted December 23, 2009 at 02:31 PM Por acaso, após pesquisar aqui um bocadinho, consegui perceber aqui mais umas coisitas 🙂 Já percebi porque é que não conseguia aceder à função da minha classe 😉 Primeiro, tem que se declarar a classe no Form como nova, e só depois aceder-lhe. Pensei que como estava no mesmo projecto, conseguia aceder directamente, tal como se consegue a outros forms 👍 Penso que já estou bem orientado, vamos lá ver 😉 Link to comment Share on other sites More sharing options...
ribeiro55 Posted December 23, 2009 at 02:32 PM Report Share #302035 Posted December 23, 2009 at 02:32 PM Para acederes sem instanciar, tens de usar as "Shared" que te falei. Ex: Public Shared Function FazQualquerCoisa(E_toma_um_argumento As String) As String End Function Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
Ivo Pereira Posted December 23, 2009 at 02:38 PM Author Report Share #302036 Posted December 23, 2009 at 02:38 PM Para acederes sem instanciar, tens de usar as "Shared" que te falei. Ex: Public Shared Function FazQualquerCoisa(E_toma_um_argumento As String) As String End Function E isso teria alguma desvantagem no seu uso ou é só vantagens ? 😉 Link to comment Share on other sites More sharing options...
ribeiro55 Posted December 23, 2009 at 02:43 PM Report Share #302038 Posted December 23, 2009 at 02:43 PM Eu diria que, para o que servem, não têm desvantagens. Math.Round é um bom exemplo de uma shared function que deves usar uma série de vezes sem dares por ela 😉 Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
Ivo Pereira Posted December 23, 2009 at 02:55 PM Author Report Share #302041 Posted December 23, 2009 at 02:55 PM Eu diria que, para o que servem, não têm desvantagens. Math.Round é um bom exemplo de uma shared function que deves usar uma série de vezes sem dares por ela 😉 Possivelmente 👍 Bom, qualquer questão vou adicionando aqui 🙂 Obrigado 😉 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now