Comment déclarer "en tant que" dans VB.NET, ou quel est l'équivalent?Déclaration Visual Basic 6.0 vers VB.NET
Répondre
VB.NET ne prend pas en charge le mot clé "As Any". Vous devrez spécifier explicitement le type.
Le plus proche, vous pouvez obtenir est:
Dim var as Object
Ce n'est pas exactement la même chose que VB6 est comme ANY (qui stocke les valeurs dans une variante) mais vous pouvez stocker des variables de tout type comme objet, mais en boîte .
VB.NET ne supporte pas comme un mot clé, VB.NET est un langage fortement typé, vous pouvez cependant (avec .NET 3.5) utiliser le typage implicite dans VB
Dim fred = « Bonjour tout le monde » sera implicitement tapez fred en tant que variable chaîne. Si vous voulez simplement garder une valeur dont vous ne connaissez pas le type au moment de la conception, vous pouvez simplement déclarer votre variable comme objet (la mère de tous les objets). NOTE, ceci est généralement un drapeau rouge pour les réviseurs de code. vous avez une bonne raison prête :-)
Je suppose que vous avez des problèmes avec la conversion des déclarations WinAPI. Parfois, vous pouvez vous en sortir si vous déclarez simplement votre variable sous forme de chaîne ou d'entier parce que c'est le vrai type de valeur retournée.
Vous pouvez également essayer marshaling:
<MarshalAsAttribute(UnmanagedType.AsAny)> ByRef buff As Object
Comme ANY doit se référer aux déclarations de l'API Windows, car il ne peut pas être utilisé dans les déclarations variables. Vous pouvez utiliser la surcharge: il suffit de répéter les déclarations pour chaque type de données que vous souhaitez transmettre. VB.NET sélectionne celui qui correspond à l'argument que vous passez dans votre appel.
Cela vaut mieux que Tout comme dans VB6 car le compilateur peut toujours effectuer une vérification de type.
Si l'option Strict est activée, vous devez spécifier un type lors de la déclaration d'une variable. – Kogitsune