加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 18:31:45 所属栏目:百科 来源:网络整理
导读:我已经使用 this helpful post来学习如何将枚举值列表作为参数传递. 现在我想知道我是否可以使这个参数可选? 例: public enum EnumColors { [Flags] Red = 1,Green = 2,Blue = 4,Black = 8 } 我想调用我的函数接收Enum param,如下所示: DoSomethingWithCo
我已经使用 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) {

    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读