Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Vb.Net中隐式转换枚举类型_Vb.net - Fatal编程技术网

如何在Vb.Net中隐式转换枚举类型

如何在Vb.Net中隐式转换枚举类型,vb.net,Vb.net,我正在犯错误 错误BC30512 Option Strict On不允许从“clsDataTypes.enmMiscTransTypes”到“clsDataTypes.enmMiscTransDistributions”的隐式转换 下面提到的是代码,我正在将一个可选参数传递给下面这样的子对象 Public Sub NotifyDisbursementDistribChanged( Optional ByVal enmRemovedDistribOption As clsDataTypes

我正在犯错误

错误BC30512 Option Strict On不允许从“clsDataTypes.enmMiscTransTypes”到“clsDataTypes.enmMiscTransDistributions”的隐式转换

下面提到的是代码,我正在将一个可选参数传递给下面这样的子对象

Public Sub NotifyDisbursementDistribChanged(
    Optional ByVal enmRemovedDistribOption As clsDataTypes.enmMiscTransDistributions = clsDataTypes.enmMiscTransTypes.ValueNotSet)

End Sub
这两种是枚举类型

Public Enum enmMiscTransDistributions
    ValueNotSet = -1
    Check = 0
    Wire = 1
    PlanWire = 3
    Test2= 9
End Enum

Public Enum enmMiscTransTypes
    ValueNotSet = -1
    MiscReceipt = 1         
    test2= 9        
    test5= 11

End Enum

那么为什么要使用其他枚举类型呢

Public Sub NotifyDisbursementDistribChanged(
    Optional ByVal enmRemovedDistribOption As clsDataTypes.enmMiscTransDistributions = clsDataTypes.enmMiscTransDistributions.ValueNotSet)

End Sub

我的意思是,使用错误的枚举有什么意义?它们都有ValueNotSet=-1。所以只需使用正确的一个…?

尝试使用Or:
DirectCast(enmMiscTransTypes.ValueNotSet,enmmisctrandistributions)
Ctype将无法工作,因为您可以看到我正在分配一个值(.ValueNotSet=-1)
CType
只要值对应,就可以完全按照需要工作;在这种情况下,它们在两个枚举中的
ValueNotSet
都是-1。但是,鉴于
ValueNotSet
是两个枚举中唯一的等效值,您可能不应该尝试转换,而应该更改为使用正确的枚举(或者可能是只有
ValueNotSet
)的普通枚举。不清楚您为什么要使用另一个枚举。谢谢。我将按您所说的那样使用。@vandy很棒。我只是好奇,为什么您一开始就试图从错误的枚举设置默认值?