将枚举类型作为可选参数传递

使用可选参数时,我喜欢将它们默认为Nothing.

Sub DoSomething(ByVal Foo as String, Optional ByVal Bar as String = Nothing)
    If Bar IsNot Nothing then DoSomethingElse(Bar)
    DoAnotherThing(Foo)
End Sub

这很有效,除非您开始使用Enum类型(或 anInteger和其他数据类型)。在这种情况下,我的Enum列表包含一个“无”值,如下所示:

Enum MyEnum
    None
    ChoiceA
    ChoiceB
End Enum
Sub DoSomething(ByVal Foo as String, Optional ByVal Bar as MyEnum= MyEnum.None)
    If Bar = MyEnum.None then DoSomethingElse(Bar)
    DoAnotherThing(Foo)
End Sub

它有效,但我正在寻找替代方案。除了在 custom 中创建“None”条目的负担之外Enum,这对于框架或第三方 DLL 定义的枚举是不可能的。

通常情况下,我在起草问题时遇到了一些答案。

这篇文章.NetDocumentation建议使用可空值:

Sub DoSomething(ByVal Foo as String, Optional ByVal Bar as Nullable(Of MyEnum) = Nothing)
    If Bar IsNot Nothing then DoSomethingElse(Bar)
    DoAnotherThing(Foo)
End Sub

或者,

Sub DoSomething(ByVal Foo as String, Optional ByVal Bar as Nullable(Of MyEnum) = Nothing)
    If Bar IsNot Nothing then DoSomethingElse(Bar)
    DoAnotherThing(Foo)
End Sub

从来没有使用过这个所以任何评论/警告都是最受欢迎的!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将泛型类型枚举作为参数传递(java)

在Dart 2中将枚举类型作为参数传递

传递枚举类型作为构造函数参数

如何在协议的可选方法中将枚举作为参数传递

将类型作为参数传递

将枚举作为函数参数传递

将枚举作为函数中的参数传递

将匿名枚举作为函数参数传递

通过将 Unit 作为类型传递给泛型特征的可选方法参数

使用枚举作为可选参数

将泛型枚举类型作为参数传递给 Typescript 中的函数

在打字稿中将枚举类型作为参数传递

是否可以将枚举类型作为参数传递并在其他函数中重用此类型?

将UITextDelegate类型的ViewController作为参数传递

如何将类型作为参数传递

将元类型作为函数参数传递

将接口类型作为参数传递

您可以将委托函数作为可选参数传递吗?

如何将类作为可选参数传递给方法?

如何将函数作为可选参数传递

将类的子类作为类型参数传递(类型参数是子类)

将枚举值列表作为HTTP查询参数传递

将枚举作为参数传递给 C# 中的方法

将枚举类作为构造函数的参数传递

我可以将Class作为枚举的构造函数参数传递,然后将其用作方法的返回类型吗?

通过枚举类型作为参数

使用枚举作为类型参数

Typescript-可选参数验证不足以将类型作为参数传递给另一个函数时确定类型吗?

将未知的枚举类型传递给具有可变参数枚举参数的方法