VB.NET a-t-il un équivalent direct aux out
paramètres de fonction C # , où la variable passée dans une fonction n'a pas besoin d'être initialisée?
vb.net
c#-to-vb.net
out-parameters
cspolton
la source
la source
Object
, donc elle ne peut pas être utilisée pour unByRef x As Integer
paramètre).ByRef
paramètres. (Cela ne se produit pas avec les paramètres de type valeur.)Nothing
éliminera l'avertissement même si cela ne change pas le résultat.Nothing
jusqu'à présent. Cela prend juste du temps car je dois le faire des centaines de fois dans un grand site Web hérité. Merci d'avoir enquêté.Out
attribut n'est pas équivalent auout
mot-clé C # .Non, il n'y a pas de construction équivalente qui permet à une variable non initialisée d'être passée à une méthode sans avertissement, mais, comme mentionné dans ma question et réponse spécifiant un
<Out()>
attribut sur uneByRef
définition de paramètre, bien que VB l'ignore, est traité par C # commeout
paramètre.Donc, je pré-initialiserais les variables de référence
Nothing
et spécifierais<Out()> ByRef
pour signifier l'intention (cela fonctionnera si les utilisateurs C # accèdent à vos méthodes).Si vous pensez savoir quand vous avez l'intention d'accéder à la valeur
Nothing
par défaut dans des variables de référence autrement non attribuées, vous pouvez définir la "Configuration d'avertissement" "Utilisation de la variable avant l'affectation" sur "Aucune" au niveau du projet (Propriétés du projet> Compiler, et vous souhaitez définir Configuration sur «Toutes les configurations» avant de modifier ce paramètre) ou, dans VS2015 (VB.NET 14), vous pouvez utiliser#Disable Warning BC42030
.la source
Version C #
Version de Vb.net
J'ai trouvé la réponse ici
Mettre à jour
Comme indiqué dans le commentaire, n'oubliez pas d'initialiser votre paramètre qui sera utilisé dans le slot de sortie
la source
J'ai eu le problème dans VB.NET que j'ai appelé une fonction "par ref" qui a renvoyé un tableau.
Même si le compilateur l'a signalé comme un avertissement, tout allait bien. Le correctif est super simple et probablement une bonne pratique de programmation.
j'ai changé
à
Cela aide également lors du codage si les noms de variables sont descriptifs ...
la source
Vous pouvez utiliser la méthode de passage par référence dans VB.NET.
Vous avez besoin du mécanisme de paramètre Out en C #, car il ne vous permet pas d'utiliser une variable sans l'initialiser.
VB.NET n'a pas besoin d'un mot clé spécial car il le fait automatiquement par lui-même.
Utilisez simplement ByRef.
la source
VB a l'attribut qui devrait être le même que C # out mais aujourd'hui, vous recevez toujours un avertissement même si vous l'utilisez. Il y a des détails sur la façon de le réparer dans la zone vblang de github. https://github.com/dotnet/vblang/issues/67 .
la source
Utilisez le mot clé ByRef avant la variable.
la source
ByRef
équivaut auxref
paramètres en C #, qui doivent être initialisés avant d'être passés dans une fonction.