"Ami WithEvents" dans Visual Basic vs "privé" en C#
Dans les Windows Forms projets, pourquoi ne le concepteur, par défaut, utilisez la Friend WithEvents
attributs dans VB.NET et private
ceux en C#?
Par exemple, dans un form.designer.
fichier:
.cs
private Label Label1;
.vb
Friend WithEvents Label1 as Label;
Pour WithEvents
, il est plus ou moins clair (pour l'utilisation de Handles
, apparemment). Mais pourquoi Ami dans Visual Basic et privé en C#?
OriginalL'auteur serhio | 2009-12-17
Vous devez vous connecter pour publier un commentaire.
Ami
est utilisé pour assurer la compatibilité avec les anciens du code Visual Basic, où, normalement, un contrôle a été utilisé à l'extérieur de la forme qu'il contenait.En C#, il n'y a pas que de la nécessité.
private
est une meilleure solution, pour le nouveau code.OriginalL'auteur kiamlaluno
Généralement VB.NET se penche vers l'exposer trop (la vie privée est principalement opt-in) alors que C# est l'inverse, la vie privée est généralement opt-out. Comme d'autres l'ont mentionné la raison en est probablement due à VB.NET héritage et la "convivialité" de l'exposer à tout; il le rend facile pour commencer, mais aussi conduit à une mauvaise conception et des efforts supplémentaires pour assurer le couplage lâche.
OriginalL'auteur STW
Je pense que c'est pour aider à la migration à partir de versions antérieures de visual basic comme code dans les formes ont tendance à être modifiés à partir de l'extérieur de plus en plus fréquemment. Ami est aussi la valeur par défaut.
Privé est mieux à partir d'un code de conception et est utilisé en C# comme il n'est pas similaire historique de la pratique de codage, je suppose!
OriginalL'auteur DiggerMeUp
Peut-être que Visual Basic est d'essayer d'être plus accueillant pour les nouveaux programmeurs et de leur permettre de voir tous les Ami contrôles dans le formulaire à partir de n'importe où dans leur projet?
Ami être à l'intérieur, la seule chose que je peux penser, je ne suis pas sûr de savoir pourquoi les valeurs par défaut serait différent des autres que pour aider les nouveaux programmeurs...
La POO est facile de prêcher, mais même avec C# verte de nombreux développeurs apprendre juste assez pour s'en sortir et de tomber dans une approche procédurale. Bon OO conception requiert de la rigueur et de la plus grande considération, alors, naturellement, c'est une compétence qui se développe après apprendre les bases d'un langage OO.
Je suis d'accord, juste une des nombreuses raisons, je recommande C# pour les nouveaux programmeurs...
J'ai effectivement offrir VB.NET que le meilleur apprentissage de la langue; il permet à un nouveau développeur de réduire leurs dents inquiète moins pour la syntaxe et de la conception de niveau plus élevé et plus l'apprentissage de cadre. Une fois qu'un développeur compétent avec le cadre de base des outils alors qu'ils peuvent envisager la conception et les aspects de sécurité; il en fait un naturel point de rupture à faire le changement.
OriginalL'auteur Brett Allen