L'utilisation du mot-clé Moi (VB.NET) est-elle obligatoire ou non?
Je suis actuellement en train de travailler sur une application web (ASP.NET) et certaines pages sont inclus ont été créés par d'autres programmeurs, ce que j'ai remarqué, ils ne sont pas à l'aide de "Moi(VB.NET)" mot clé pour les contrôles d'accès, tandis que de mon côté je l'ai utilisé à chaque page que j'ai créé. Juste pour donner de plus amples informations, l'application web fonctionne sur un .NET Framework 2.0. Est-ce quelqu'un là-bas qui va m'aider à comprendre est-il requis pour l'utilisation de Moi ou pas? Quels sont les avantages et les inconvénients dans l'ensemble du code et si vous êtes avec Moi? Peut-il améliorer la performance de l'application?
Toute aide est très appréciée. Merci à l'avance.
source d'informationauteur KG Sosa
Vous devez vous connecter pour publier un commentaire.
De ce que je comprends, c'est purement de préférence, mais peut lever l'ambiguïté entre les propriétés et configuré localement des variables/paramètres. Certaines personnes comprennent religieusement par habitude. De cette façon, si ils étaient introduire une variable locale de même nom, rien n'allait se briser.
Dire que vous avez une méthode définie
DoSomething(MyString As String)
et la classe possède également uneString
appeléMyString
. Le seul moyen de faire référence à la de la classe version deMyString
est d'utiliserMe.MyString
. Donc, vous ditesMe.MyString = MyString
et le compilateur sait ce que vous voulez.Dans certains cas, il est nécessaire, prenons l'exemple d'une variable dans la portée d'une classe, et un paramètre passé à une sous-routine qui a un nom équivalent:
Il apporte les choses dans le bon contexte pour permettre que les missions soient effectuées correctement.
Dans votre cas, certains développeurs ont tendance à le faire afin qu'ils sachent où la variable est à venir, quelque chose de mes collègues de travail le fera aussi. Il est souvent fait parce que intellisense élever leurs locaux liste de variables si elles tapez "Moi.", chose que je n'ai pas l'habitude de faire, bien que je devrais en faire plus.
À l'aide de la mot clé Me n'affecte pas les performances. C'est purement une question de style. Je pense qu'il permet d'améliorer la lisibilité de votre code si vous l'utilisez. Vous savez au premier coup d'œil que le membre a utilisé appartient à l'objet lui-même et il n'est pas une variable locale par exemple.
Le Moi, le mot clé est utilisé chaque fois que nous voulons de notre code pour désigner les membres (méthodes, propriétés, ...) à l'intérieur de l'objet courant. Le mot clé Me est analogue à la ce mot-clé en C++ et C# langues. Le mot clé Me est généralement facultatifdepuis tout appel de méthode est interprétée comme une référence à l'objet courantsauf si explicitement mentionné autrement.
L'exception est lorsque vous utilisez l'ombre des variables. Une ombre de la variable est une variable au niveau de la procédure avec le même nom qu'une variable de la classe. Par exemple:
La variable Prenom est déclaré au niveau de la classe et au sein de la ExampleMethod méthode. Dans ExampleMethod seulement les locaux, ou à l'ombre, la variable est utilisé, sauf si nous avons expressément référence au niveau de la classe de la variable avec le mot clé Me:
Le Moi mot clé est facultatif de la même façon, vous avez la possibilité d'obtenir un espace de noms, même si vous avez importé dans la partie supérieure de la classe.
Toutefois, si vous avez un contrôle sur le formulaire avec le même nom qu'un objet dans un autre espace de noms importé il peut être essentiel.
Je pense que pour les contrôles de l'INTERFACE utilisateur de son très préférences de l'utilisateur.
Mais je préfère largement l'utilisation de "Moi", surtout si vous utilisez des propriétés de la classe juste au cas où il y a du code qui doit être exécuté avant d'accéder à cette variable.
Exemple
Dans ce cas, il y a une différence entre de l'utiliser avec ou sans "Moi" mot-clé.
Bien, Même si il y a des choses, il y a des événements que ce mot clé ME donne des problèmes
Par Exemple, Si vous disposez d'un formulaire et vous l'appelez à partir d'un autre formulaire comme
à moins que la méthode Show est terminé, les objets dans le primarykey méthode n'a pas de référence pour le mot clé ME et ils fournissent une erreur.
Dans la méthode PrimaryKey
propriété writeonly primarykey
ensemble....
fournira une Erreur, sauf si le formulaire ne s'affiche pas.
Moi, c'est un objet de la classe en cours