2008-09-16 8 views

Antwort

0

VB.NET unterstützt das Schlüsselwort "As Any" nicht. Sie müssen den Typ explizit angeben.

3

Die nächstgelegene können Sie bekommen, ist:

Dim var as Object

Es ist nicht genau das gleiche wie VB6 ist wie jeder (die Werte in einer Variante speichert), aber Sie können Variablen beliebigen Typs als Objekt speichern, wenn auch boxed .

3

VB.NET unterstützt nicht das wie jedes Schlüsselwort ist VB.NET eine stark typisierte Sprache, können Sie jedoch (mit .NET 3.5) verwenden implizite Typisierung in VB

Dim fred = „Hallo Welt“ wird gib implizit fred als string-Variable ein. Wenn Sie einfach einen Wert behalten möchten, den Sie zur Entwurfszeit nicht kennen, können Sie Ihre Variable einfach als Objekt deklarieren (die Mutter aller Objekte). HINWEIS, das ist normalerweise eine rote Markierung für Code-Reviewer, also stellen Sie sicher Sie haben einen guten Grund bereit :-)

+0

Wenn Option Strict aktiviert ist, müssen Sie beim Deklarieren einer Variablen einen Typ angeben. – Kogitsune

1

Ich nehme an, Sie haben Probleme mit der Konvertierung von WinAPI-Deklarationen. Manchmal können Sie wegkommen, wenn Sie Ihre Variable einfach als String oder Integer deklarieren, da dies der reale Typ des zurückgegebenen Wertes ist.

Sie können auch versuchen, Marshalling:

 
<MarshalAsAttribute(UnmanagedType.AsAny)> ByRef buff As Object 
3

Wie Jeder muss auf Windows-API-Deklarationen mit Bezug, da sie nicht in Variablendeklarationen verwendet werden können. Sie können das Überladen verwenden: Wiederholen Sie einfach die Deklarationen für jeden anderen Datentyp, den Sie übergeben möchten. VB.NET wählt diejenige aus, die mit dem Argument übereinstimmt, das Sie in Ihrem Aufruf übergeben haben.

Dies ist besser als As Any in VB6 war, weil der Compiler noch Typ-Überprüfung durchführen kann.