Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
OOP em VFP e .NET
Message
De
10/03/2003 11:41:47
 
 
À
09/03/2003 07:31:29
Information générale
Forum:
Visual FoxPro
Catégorie:
Programmation Orientée Object
Divers
Thread ID:
00760569
Message ID:
00763721
Vues:
11
>Estive olhando um pouco o C#, e uma coisa que não ficou muito clara, é a possibilidade de em uma mesma classe você ter vários métodos com o mesmo nome, mas com implementações direrentes. Pelo que entendi, de acordo com os parâmetros passados será decidido qual o método será utilizado. É isto?

sim, é isto. No VFP, métodos são identificados unicamente através do nome (não podemos ter dois métodos com o mesmo nome na mesma classe). Podemos ter um método chamado Escrever, que deve escrever na tela qualquer valor passado pra ele. Por exemplo (esquece a função Transform para fins da explicação):
Function Escrever(Parametro)

do case
case vartype(Parametro) = "C"
    ? Parametro
case vartype(Parametro) = "D"
    ? DToC(Parametro)
etc....
endcase

EndFunc
No exemplo, você teria que testar todos os tipos de dado possíveis para que seu método funcionasse (mais uma vez: faz de conta que a função Transform não existe).

Como o VFP é de "tipagem fraca", você poderia passar absolutamente qualquer tipo de variável para o seu método. Por isso, você tem que "programar defensivamente", porque não necessariamente você realmente quer receber qualquer tipo de dado.

Já no .NET, o que define métodos unicamente é o nome do método + assinatura (lista de parâmetros e tipos). Isto se chama "Method Overloading" (acho que traduziram como "sobrecarga de método", ou algo assim).

Alguns benefícios nisto:

1. Você não precisa testar manualmente o tipo de variável que está entrando, pois o compilador fará isso.
2. Você terá a certeza de que somente serão passados os tipos de dados que você realmente espera, pois se você declarou um "overload" para receber uma string, e outro para receber uma data, se você tentar passar um lógico, o compilador irá te frear.

Bom, acho que deu pra clarear um pouco, né? :)
Claudio Lassala
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform