c# - 如何将多个枚举传递给只接收一个的方法?

标签 c# parameters enums parameter-passing

我想知道以下是否可行:

Regex.Match 方法可以接收枚举,因此我可以指定:

RegexOptions.IgnoreCase
RegexOptions.IgnorePatternWhiteSpace
RegexOptions.Multiline

如果我需要指定不止一个怎么办?(例如,我希望我的正则表达式是 Multiline 并且我希望它忽略模式空白)。

我可以像在 C/C++ 中那样使用 | 运算符吗?

最佳答案

你需要用[Flags]来注释它属性和使用 |运算符将它们组合起来。

在您提到的情况下,您可以这样做,因为 RegexOptions枚举用它注释。


更多引用:

A helpful way to use the FlagsAttribute with enumerations

来自上面 CodeProject 文章的示例片段:

定义:

[FlagsAttribute]
public enum NewsCategory : int 
{
    TopHeadlines =1,
    Sports=2,
    Business=4,
    Financial=8,
    World=16,
    Entertainment=32,
    Technical=64,
    Politics=128,
    Health=256,
    National=512
}

使用:

mon.ContentCategories = NewsCategory.Business | 
                        NewsCategory.Entertainment | 
                        NewsCategory.Politics;

关于c# - 如何将多个枚举传递给只接收一个的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6022306/

相关文章:

c# - 无法在 Firefox 中读取 ashx 中的 session 变量值?

php - 如何将 php var 传递给 js 文件中定义的函数

C++ 对于哪些类型,参数类型名称可以与带类型说明符的参数名称相同?

python - 使用枚举时禁用 pylint 警告 E1101

c# - 如何在 Visual Studio 2022 for net6.0 的 C# 中将枚举添加到新控制台模板?

c# - 从 HttpResponseMessage 返回的 JSON 中获取 API 值

c# - 如何从未经检查的异常中恢复?

sql - 如何使 SSRS 参数 = 来自另一个数据集的字段

c# - 用于在 Visual Studio 2022 中进行调试的环境变量

javascript - 无法弄清楚为什么参数在 JS fibonacci 函数的递归过程中发生变化