2013-08-02 20 views
5

ich Variantzu Variant kurz Konvertieren (extrahieren Variant von kurz)

kurz konvertieren

Mein Versuch (funktioniert nicht richtig)

VariantType vt = (VariantType)vt; 

So wie kann ich auf Variant kurz konvertieren?

(vb.net-Tag, weil Variant von Microsoft.VisualBasic ist)

+0

Wahrscheinlich brauchen Sie die [VarType-Funktion] (http://msdn.microsoft.com/en-us/library/9w51ee9c.aspx). –

+0

Ziemlich zuversichtlich 'VariantType' ist nicht in C# (wenn sein [ dies] (http://msdn.microsoft.com/en-us/libra ry/microsoft.visualbasic.varianttype.aspx)) – Sayse

+0

Es gibt in VariantType ... kurz zurück und ich muss die Typdefinition aus short und nicht aus dem Typ selbst extrahieren. – Cynede

Antwort

3

Der Code sollte in Ordnung sein:

Folgende funktioniert perfekt:

short num = 4; 
VariantType vt = (VariantType)num; 
Console.WriteLine(vt); 

und Ausgänge "Single". Dies bedeutet, dass das Problem, das Sie haben, nicht mit der groben Codezeile übereinstimmt, die Sie verwenden.

Das gesagt worden ist die tatsächliche Linie, die Sie verwenden (dh VariantType vt = (VariantType)vt; wird nicht funktionieren, weil das Vt auf der rechten Seite der Gleichung ungültig ist, da es nicht zugewiesen ist (da Sie nicht fertig erklärt haben). Sie sollten eine "Verwendung von nicht zugewiesenen lokalen vairable 'vt'", wenn Sie versuchen, das kompilieren.

Ich nehme an, dass die Linie ein Fehler ist, aber wenn nicht, sollten Sie erklären, was Sie tatsächlich damit zu tun versuchen Linie

+0

Nein, '0x0018' gibt zum Beispiel' 0x0018' zurück und muss – Cynede

+0

0x18 sein, das ist kein gültiger Wert für die Enumeration. Wenn Sie das bekommen, dann ist irgendwo anders in Ihrem Code etwas falsch. – Chris

+0

Es ist gültig nach meinem 'WTypes.h',' VT_UI2 \t = 18, 'aber VariantType Enum ist wirklich anders als VARENUM, also muss ich die Frage ändern – Cynede