Gibt es ein VB.NET-Äquivalent von C # out-Parametern?
Tut VB.NET haben eine direkte Entsprechung in C# out
Parameter der Funktion, wo die variable einer Funktion übergeben werden, müssen nicht initialisiert werden?
InformationsquelleAutor der Frage cspolton | 2010-12-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, es gibt kein äquivalent des
out
Schlüsselwort in VB.Aber VB nicht automatisch initialisieren allen lokalen Variablen in einer Methode verwenden, so können Sie
ByRef
ohne explizit initialisieren Sie die variable zuerst.Beispiel:
(Wenn Sie untersuchen Sie code in den Rahmen (zum Beispiel Doppel.TryParse), sehen Sie möglicherweise die
<OutAttribute>
Hinzugefügt Parameter, aber das macht nur einen Unterschied, wenn der Anruf gemarshallt für COM-interop oder Plattform aufrufen.)InformationsquelleAutor der Antwort Guffa
Nein, es gibt kein entsprechendes Konstrukt, das erlaubt, eine nicht-initialisierte variable an eine Methode übergeben, ohne eine Warnung, aber, wie bereits in meinem Frage und Antwort Angabe einer
<Out()>
- Attribut auf eineByRef
parameter-definition, obwohl VB ignoriert es, ist behandelt, indem Sie C# als eineout
parameter.So, ich würde pre-initialisieren Referenz-Variablen zu
Nothing
und angeben<Out()> ByRef
Indizien, die auf die Absicht (das wird funktionieren, wenn die C# - Benutzer immer Zugriff auf Ihre Methoden).Wenn Sie denken, Sie wissen, wenn Sie beabsichtigen, den Zugriff auf die Standard -
Nothing
in sonst nicht zugewiesene Referenz-Variablen Sie können die "Warnung Konfiguration" "Verwendung von Variablen vor der Zuweisung" zu "None" auf der Projektebene (Projekt-Eigenschaften - > Kompilieren Sie, und Sie wahrscheinlich wollen, um die Konfiguration "Alle Konfigurationen" vor dem ändern dieser Einstellung), oder, in VS2015 (VB.NET 14) verwenden, können Sie#Disable Warning BC42030
.InformationsquelleAutor der Antwort Mark Hurd
C# - version
Vb.net version
Fand die Antwort hier
Update
Wie bereits im Kommentar nicht vergessen initialze Ihre parameter, die verwendet werden in den out-slot
InformationsquelleAutor der Antwort David
Können Sie die pass by reference-Methode in VB.NET.
Müssen Sie die Out-parameter-Mechanismus in C#, weil es nicht lassen Sie jede variable, die ohne es zu initialisieren.
VB.NET nicht benötigen Sie ein spezielles Schlüsselwort wie es automatisch macht es von selbst.
Nur ByRef verwenden.
InformationsquelleAutor der Antwort Josh
Hatte ich das problem in VB.NET ich rief eine Funktion "by ref" übergeben ein array zurück.
Obwohl der compiler markiert es als eine Verwarnung war es in Ordnung. Das Update ist super einfach und wahrscheinlich guter Programmierstil.
Änderte ich
zu
Hilft es auch beim Programmieren, wenn die Variablen-Namen sind aussagekräftige...
InformationsquelleAutor der Antwort TheWhitde
VB hat das Attribut, das sollte die gleiche wie C#, aber heute erhalten Sie noch eine Warnung, auch wenn Sie es verwenden. Es gibt details über die Festsetzung es in vblang Bereich von github. https://github.com/dotnet/vblang/issues/67.
InformationsquelleAutor der Antwort Paul Cohen
Verwenden Sie das Schlüsselwort ByRef vor der variable.
InformationsquelleAutor der Antwort deostroll