C# 将short转换为VariantType(从short中提取VariantType)

C# 将short转换为VariantType(从short中提取VariantType),c#,.net,vb.net,C#,.net,Vb.net,我需要将short转换为VariantType 我的尝试(不正确) 那么如何将short转换为VariantType呢 (vb.net标记,因为VariantType来自Microsoft.VisualBasic)您的代码应该很好: 以下方法非常有效: short num = 4; VariantType vt = (VariantType)num; Console.WriteLine(vt); 和输出“单一”。这意味着,无论您遇到什么问题,都不是您所使用的粗略代码行的问题 已经说过,您正在

我需要将short转换为VariantType

我的尝试(不正确)

那么如何将short转换为VariantType呢


(vb.net标记,因为VariantType来自Microsoft.VisualBasic)

您的代码应该很好:

以下方法非常有效:

short num = 4;
VariantType  vt = (VariantType)num;
Console.WriteLine(vt);
和输出“单一”。这意味着,无论您遇到什么问题,都不是您所使用的粗略代码行的问题

已经说过,您正在使用的实际行(即
VariantType vt=(VariantType)vt;
将不起作用,因为等式右侧的vt无效,因为它是未赋值的(因为您尚未完成声明)。您应该得到“使用未赋值的局部变量'vt'”当你试图编译的时候


我假设这行是一个错误,但如果不是,你应该解释你实际上是想用这行做什么。

你可能需要。相当自信的
VariantType
不是C#(如果是)它在VariantType中返回short…我需要从short中提取类型定义,而不是它本身的类型。@Sayse确实如此。
Microsoft.VisualBasic
命名空间中的所有内容都可以从C#中使用。@CodyGray-啊,对了,我完全查看了链接中的名称空间,认为它是一种完整的语言内容不,
0x0018
re例如,打开
0x0018
,它必须是ushort0x18不是枚举的有效值。如果你得到了这个值,那么代码中的其他地方就有错误。根据我的
WTypes.h
VT_UI2=18,
它是有效的,但是VariantType enum与VARENUM确实不同,所以我必须改变这个问题,我不确定是什么你的WyTy.h是(听起来像是一个C++文件给我)但听起来好像不对。我使用refactor对Microsoft.VisualBasic.dll进行了反编译,以查看枚举的值,我可以保证0x18不在其中。您认为它应该是什么类型?作为对另一个问题的简短回答,我怀疑这是因为枚举的根。VB名称包中的根E是与VB兼容的,我怀疑VB6中有镜像。同样,如果WyType。H是C++头,可能只是没有标准,所以他们都决定做不同的事情(可能也是因为它们可能有不同的类型,因此必然是不同的)。
short num = 4;
VariantType  vt = (VariantType)num;
Console.WriteLine(vt);