gpt4 book ai didi

c# - 将不同的选项传递给方法

转载 作者:行者123 更新时间:2023-11-30 20:05:37 27 4
gpt4 key购买 nike

我正在寻找一种将不同选项作为参数传递给方法的方法。假设用户可以选择 6 个选项中的任何一个或全部或其中的任何子集。所以他可以选择所有选项,只有选项 1、2 和 4,只有选项 1、3、5 和 6 等等...

我如何有效地传递它?

我正在考虑使用枚举,因为您可以进行按位加法,但我错过了从那里开始的下一个难题:

我的方法可以变成这样吗:

public void Foo(byte selectedOptions)
{
// How do I check whether an option has been selected??
if (selectedOptions >= Option.Whatever) DoThis();
}

所以你看我有点卡在按位比较上,我想知道这是否是正确的方法......

我不想做的是:

public void Foo(bool option1Selected, bool option2Selected, etc...);

想法?

最佳答案

使用枚举标志

[Flags]
public enum FlagTest
{
None = 0x0,
Flag1 = 0x1,
Flag2 = 0x2,
Flag3 = 0x4
}

要选择多个选项,请使用按位或

FlagTest testItem = FlagTest.Flag1 | FlagTest.Flag2;

检查一个标志是否被选中使用按位和

if ((testItem & FlagTest.Flag1) == FlagTest.Flag1)
{
// Do something
}

关于c# - 将不同的选项传递给方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11135771/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com