Was entspricht Microsoft.VisualBasic.Collection in c #?

8

Ich habe eine Methode, die den Namen einer gespeicherten Prozedur und eine Microsoft.VisualBasic.Collection akzeptiert ? Ich verweise auf ein vb-Projekt, in dem ich eine Sammlung an diese Methode weitergeben muss, aber das aktuelle Projekt, in dem ich mich befinde, ist in c #, daher bin ich nicht sicher, was ich in die Methode einbringen kann?

Hier ist der Vb-Aufruf:

%Vor%

In meiner c # -App muss ich dies einen Pass in dem entsprechenden c # -Objekt zu params nennen.

    
Xaisoft 24.05.2011, 18:38
quelle

3 Antworten

11

Eine Option besteht darin, den Typ Collection direkt aus C # zu verwenden. Dies ist ein Standardtyp in der Assembly Microsoft.VisualBasic.dll und kann von jeder .Net-Sprache verwendet werden.

Die nächste Sammlung in der Standard-BCL ist jedoch Hashtable . Die Konvertierung zwischen Hashtable und Collection sollte ziemlich einfach sein

Zum Beispiel

%Vor%

Hinweis: Dies ist jedoch keine direkte Zuordnung. Der Collection -Typ unterstützt eine Reihe von Operationen, die Hashtable nicht mögen: Vorher-Nachher-Werte, Index nach Zahl oder Schlüssel, etc ... Mein Ansatz wäre, einen Typ konsistent in der gesamten Anwendung zu verwenden und entweder den C # zu ändern. oder VB Projekt entsprechend

    
JaredPar 24.05.2011, 18:43
quelle
5

Wenn Sie die Methode nicht ändern können, so dass ICollection , IEnumerable oder ihre generischen Varianten verwendet werden, müssen Sie eine Instanz von Microsoft.VisualBasic.Collection an diese Methode übergeben.

Aus der Sicht von C # ist Microsoft.VisualBasic.Collection nur eine Klasse, und Sie können damit genauso wie mit jeder anderen Klasse arbeiten, d. h. zum Beispiel:

%Vor%

Natürlich müssen Sie in Ihrem Projekt auf die Assembly Microsoft.VisualBasic.dll verweisen.

    
svick 24.05.2011 18:47
quelle
2

Es gibt kein "C # -Objekt" oder "VisualBasic.net-Objekt" - es ist alles .net, Sie können also einfach einen Verweis auf Microsoft.VisualBasic.dll einfügen und dieses Microsoft.VisualBasic verwenden. Sammlung.

C # Entwickler werden oft wegen des Namens von Microsoft.VisualBasic.dll missbilligt, aber Sie werden nicht von Velociraptors gefressen, wenn Sie es verwenden, da .net korrekt und vollständig sprachunabhängig ist.

    
Michael Stum 24.05.2011 18:50
quelle

Tags und Links