微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

枚举参数在c#中是可选的吗?

我已经使用 this helpful post来学习如何将枚举值列表作为参数传递.

现在我想知道我是否可以使这个参数可选?

例:

public enum EnumColors
    {
        [Flags]
        Red = 1,Green = 2,Blue = 4,Black = 8
    }

我想调用我的函数接收Enum param,如下所示:

DoSomethingWithColors(EnumColors.Red | EnumColors.Blue)

要么

DoSomethingWithColors()

那我的功能应该是什么样的?

public void DoSomethingWithColors(EnumColors someColors = ??)
 {
  ...
  }

解决方法

是的,它可以是可选的.
[Flags]
public enum Flags
{
    F1 = 1,F2 = 2
}

public  void Func(Flags f = (Flags.F1 | Flags.F2)) {
    // body
}

然后,您可以使用或不使用参数调用您的函数.如果你调用它而没有任何参数,你将得到(Flags.F1 | Flags.F2)作为传递给f参数的认值

如果您不想拥有认值但参数仍然是可选的,则可以执行此操作

public  void Func(Flags? f = null) {
    if (f.HasValue) {

    }
}

原文地址:https://www.jb51.cc/csharp/98788.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐