11
votes

Quelle est la différence entre la propriété publique, l'ami et la variable publique dans VB6

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:

  • Propriété publique
  • ami
  • Variable publique

    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 #?


1 commentaires

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.


3 Réponses :


3
votes
  • public signifie qu'il est accessible par les autres classes qui Références Votre projet / DLL.
  • un ami signifie qu'il est accessible par toute autre classe dans votre assemblée (alors seul l'EXE que vous avez fait le classe in)

    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)

    en C # c'est la même chose, seulement vous utilisez interne à la place de l'ami


0 commentaires

17
votes

Les qualificateurs de portée public et ami Déterminez si les clients de différents projets peuvent voir l'élément.

  • Les éléments du public seront accessibles au code client dans d'autres projets 1 et code dans le même projet.
  • ami ne sont accessibles qu'au code du même projet, pas à coder dans d'autres projets.
  • Les articles privés sont accessibles uniquement au code de la même classe.

    propriétés sont différents des variables publiques , car avec des propriétés, vous pouvez exécuter votre propre code lorsque le client obtient ou définit la valeur 2 . EDIT Suivez le commentaire de Deanna: 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.

    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.

    • Dans VB6, vous pouvez modifier une variable publique en une propriété sans casser les clients. Vous n'avez même pas besoin de les recompiler. pas vrai dans .NET.
    • dans VB6 Les variables publiques peuvent être utilisées avec la liaison de données. pas vrai dans .NET.
    • dans VB6 Les variables publiques pourraient être utilisées avec des interfaces. pas vrai dans .NET.

      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.


      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).

      2 dans la propriété Obtenez , Propriété Laissez et Set de propriété Procédures.


3 commentaires

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.



1
votes

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.


0 commentaires