Jump to content

Funções


Ivo Pereira
 Share

Recommended Posts

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

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

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

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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.