2013-08-02 11 views
5

muszę konwertować krótkie, aby VariantTypeKonwersja krótko do VariantType (ekstrakt VariantType z krótka)

My spróbować (nie działa poprawne)

VariantType vt = (VariantType)vt; 

Więc jak mogę przekonwertować krótki, aby VariantType?

(tag vb.net ponieważ VariantType wynosi od Microsoft.VisualBasic)

+0

Prawdopodobnie potrzebujesz funkcji [funkcja VarType] (http://msdn.microsoft.com/en-us/library/9w51ee9c.aspx). –

+0

Dość pewny "VariantType" nie jest w C# (Jeśli jest [ to] (http://msdn.microsoft.com/en-us/libra ry/microsoft.visualbasic.varianttype.aspx)) – Sayse

+0

Zwraca krótki w VariantType ... i muszę wyodrębnić definicję typu z krótkiego, a nie samego typu. – Cynede

Odpowiedz

3

Kod powinien być w porządku:

następujące prace doskonale:

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

i wyjść "Single". Oznacza to, że każdy problem, który masz, nie jest związany z linią kodu, z której korzystasz.

Powiedziawszy, aktualna linia, której używasz (tj. VariantType vt = (VariantType)vt; nie będzie działać, ponieważ vt po prawej stronie równania jest nieważny, ponieważ nie jest przypisany (ponieważ nie zakończyłeś deklaracji). Powinieneś otrzymać "Użycie nieprzypisanego lokalnego vable" vt "przy próbie kompilacji."

Zakładam, że linia jest błędem, ale jeśli nie, powinieneś wyjaśnić, co faktycznie próbujesz zrobić z tym

+0

Nie, '0x0018' zwraca na przykład' 0x0018' i musi to być USH – Cynede

+0

0x18 nie jest poprawną wartością dla wyliczenia. Jeśli otrzymujesz to, coś jest nie tak gdzie indziej w twoim kodzie. – Chris

+0

To jest ważne zgodnie z moim 'WTypes.h',' VT_UI2 \t = 18, 'ale enum VariantType naprawdę różni się od VARENUM, więc muszę zmienić pytanie – Cynede