ok donc je comprends que l'ion Vb6, les propriétés encapsulées dans une classe peuvent appartenir à l'une des trois catégories: p>
Quelle est la différence entre ceux-ci et comment se comparent-ils aux propriétés publiques et privées dans une langue plus moderne comme c #? p>
3 Réponses :
La variable et la propriété sont presque identiques. La propriété est préférée car vous pouvez définir si d'autres classes peuvent définir ou obtenir la variable (la propriété encapsule la variable) p>
en C # c'est la même chose, seulement vous utilisez interne à la place de l'ami p>
Les qualificateurs de portée NB C # peut être plus moderne, mais IMHO Le traitement VB6 des propriétés et des variables publiques est significativement mieux que le. Traitement net. p>
IMHO Microsoft a fait une vraie erreur de conception dans la création de ces différences entre les propriétés et les champs publics dans .NET. Pas convaincu? Après les premières sorties de .net, le C # et VB compilateurs a été modifié pour prendre en charge Propriétés mises en œuvre automatiquement . Ceux-ci vous permettent de créer des propriétés dans une seule ligne de code, de sorte qu'il est plus tard possible d'ajouter une logique sur GET / SET sans causer de problèmes. IMHO Cela prouve que des variables publiques auraient dû être rendues indiscernables des propriétés. P>
1 En supposant que votre type de projet permet d'utiliser vos classes d'être utilisées par d'autres projets (c'est-à-dire ActiveX DLL, OCX ou ActiveX EXE). SUB> public code> et
ami code> Déterminez si les clients de différents projets peuvent voir l'élément. P>
Les éléments du public > seront accessibles au code client dans d'autres projets 1 sup> et em> code dans le même projet. li>
ami code> ne sont accessibles qu'au code du même projet, pas em> à coder dans d'autres projets. li>
Les articles privés code> sont accessibles uniquement au code de la même classe. LI>
ul>
2 dans la propriété Obtenez code>,
Propriété Laissez code> et
Set de propriété code> Procédures. SUB> P>
Dans VB6, les variables publiques définies dans des classes sont compilées sous les couvertures sous forme de propriétés. Cela peut être vu en utilisant un outil tel que la vue OLE pour inspecter la DLL une fois sa compilée. Ils sont équivalents aux "propriétés mises en œuvre automatiquement" que vous avez mentionnées.
Désolé, quand j'ai vu "dans VB6, vous pouvez modifier une variable publique en une propriété sans casser les clients" Je pensais que cela pourrait donner l'impression à l'OP que VB6 a des variables publiques dans des classes exposées.
Notez également que les variables peuvent être transmises à une fonction et des modifications fonctionneront comme prévu. Ce n'est pas le cas pour les propriétés. Je m'attends à ce que c'était la raison pour laquelle ils étaient divisés en champs et propriétés à .NET / Il.
Propriété privée Les propriétés sont utilisées par nous-mêmes et un autre membre de la famille. Mais, la propriété publique est ces biens qui sont utilisés par toutes les personnes de notre communauté, de notre société ou du pays. P>
Vous avez oublié des propriétés privées. En tout état de cause, les questions fondamentales sont facilement répondues en lisant le manuel.