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

C#循环遍布bool值

发布时间:2020-12-15 23:50:40 所属栏目:百科 来源:网络整理
导读:有没有简洁的方法在C#中循环使用true / false? 我在单元测试中有大约20行代码我宁愿不重复切换一个布尔值true / false. 我可以把它分解成一个函数并调用它两次,但是meh.这个代码感觉更像是在迭代可能的值,而不是使用不同的参数执行不同的操作.即使我有一个
有没有简洁的方法在C#中循环使用true / false?

我在单元测试中有大约20行代码我宁愿不重复切换一个布尔值true / false.

我可以把它分解成一个函数并调用它两次,但是meh.这个代码感觉更像是在迭代可能的值,而不是使用不同的参数执行不同的操作.即使我有一个函数,我更喜欢循环可能值的语法,而不是只调用它两次.

我可以像这样写一个for循环……

bool toggle;
for (int i = 0; i < 2; i++)
{
    toggle = i == 1;
}

但这似乎不是很干净.

我喜欢this syntax:

for (bool b : { false,true }) { /* ... */ }

但它看起来不会用C#编译.

编辑:

遵循Jeroen关于本地功能和Dmitry答案的建议,这是我走的路线:

[TestMethod]
public void GetAndSetValue()
{
    foreach (bool toggle in new [] { false,true })
    {
        GetAndSetValue(toggle);
    }

    void GetAndSetValue(bool toggle)
    {
        // details not important
    }
}

合理的编码员可以辩论循环读取是否比两个函数调用更容易:

GetAndSetValue(false);
GetAndSetValue(true);

我更喜欢这个循环,所以我会滚动它直到有人抱怨.干杯!

解决方法

正确的语法将是foreach,而不是:

foreach (bool b in new [] { false,true }) {
   /* ... */
}

(编辑:李大同)

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

    推荐文章
      热点阅读