2009-12-10 10 views
6
Public Function Foo() as String() 
Dim bar As String = {"bar1","bar2","bar3"} 

Return bar 
End Function 

Meine Situation Initialisierung ist ähnlich das Codebeispiel oben, wo ich von einer Funktion eine String-Array bin zurück.aus einer Funktion ein String-Array zurück, ohne es zuerst

Was ich tun möchte, ist nur das String-Array zurückgeben, ohne zuerst eine Variable deklarieren und dann die Variable zurückgeben.

So etwas wie dies, obwohl dies funktioniert offensichtlich nicht:

Return {"bar1","bar2","bar3"} 

Ist es möglich, dies zu tun, ich kann nicht scheinen, ein Verfahren zu finden, das funktioniert?

Antwort

8

Sie können dies tun:

Public Function Foo() As String() 
    Return New String() {"bar1", "bar2", "bar3"} 
End Function 
2

Sie haben nicht eine Variable deklarieren müssen (wie das Beispiel von Darin), aber Sie haben eine Instanz des Typs erstellen Sie (ein String-Array) wollen .

Sein Beispiel funktioniert, weil er ein String-Array "neu aufbaut".

+0

Ich bin etwas verwirrt von Ihrem Kommentar "Sein Beispiel funktioniert, weil er" ein String-Array "neu" aufbaut ". Darin's Vorschlag scheint gut zu funktionieren, aber ist diese schlechte Praxis vielleicht? –

+0

Er gibt ein _NEW_ String-Array zurück. Nicht zu sagen, das ist schlechter Code, aber erklärt, warum dein Beispiel nicht funktioniert. – Oded

+0

@Richard: Er bedeutet nur, dass Sie immer eine String-Array-Instanz zurückgeben müssen, und es gibt 2 Möglichkeiten, dies zu tun - definieren Sie eine neue String-Array-Variable, füllen Sie diese Variable und geben Sie das zurück (wie Sie gerade tun). ..oder tun Sie es inline wie Darin gezeigt hat, was nur eine Abkürzung ist, da Sie das neue String-Array direkt zurückgeben, anstatt es zuerst einer Variablen zuzuweisen – AdaTheDev

Verwandte Themen