Questions tagged «loops»

循环是一系列语句,仅指定一次,但可以连续执行多次。

3
如何对返回集合的测试方法进行单元化,同时避免测试中的逻辑
我正在测试一种生成数据对象集合的方法。我想验证是否正确设置了对象的属性。一些属性将被设置为相同的东西;其他的将被设置为一个值,该值取决于它们在集合中的位置。做到这一点的自然方法似乎是循环。但是,Roy Osherove强烈建议不要在单元测试中使用逻辑(Art of Unit Testing,178)。他说: 包含逻辑的测试通常一次只能测试多个对象,因此不建议这样做,因为该测试的可读性和脆弱性更高。但是测试逻辑也会增加复杂性,其中可能包含隐藏的错误。 通常,测试应该是一系列没有控制流的方法调用,甚至没有try-catch,并且带有断言调用。 但是,我看不出我的设计有什么问题(您还如何生成数据对象列表,其中某些值取决于它们在序列中的位置?无法完全分别生成和测试它们)。我的设计中是否存在非测试友好的问题?还是过于刻板地致力于Osherove的教学?还是有一些我不知道的秘密单元测试魔术可以解决这个问题?(我正在用C#/ VS2010 / NUnit编写,但是如果可能的话,寻找与语言无关的答案。)

3
如果我在Java循环内或循环外声明变量,会有所不同吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 2年前关闭。 可能重复: 您在哪里声明变量?方法的顶部或何时需要它们? 如果我在Java循环内或循环外声明变量,会有所不同吗? 这是 for(int i = 0; i < 1000; i++) { int temp = doSomething(); someMethod(temp); } 等于这个(关于内存使用)? int temp = 0; for(int i = 0; i < 1000; i++) { temp = doSomething(); someMethod(temp); } 如果临时变量例如是ArrayList,该怎么办? for(int i = 0; i < 1000; …
13 java  variables  loops 

2
当线程在while循环内等待任务时,会发生什么?
在处理了C#的async / await模式一段时间之后,我突然意识到我不太了解如何解释以下代码中发生的情况: async void MyThread() { while (!_quit) { await GetWorkAsync(); } } GetWorkAsync()假定返回一个等待对象Task,该等待对象在执行继续操作时可能会或可能不会导致线程切换。 如果等待不在循环内,我不会感到困惑。我自然希望该方法的其余部分(即延续)可以在另一个线程上执行,这很好。 但是,在一个循环中,“其余方法”的概念让我有些迷惑。 如果线程是在连续状态下打开的,而线程没有被打开,那么“其余的循环”会怎样?在哪个线程上执行循环的下一个迭代? 我的观察表明(未最终验证),每个迭代都在同一线程(原始线程)上开始,而延续在另一个线程上执行。真的可以吗?如果是,那么这是否是某种程度的意外并行性,需要解决GetWorkAsync方法相对于线程安全性的问题? 更新:我的问题并非如某些人所建议的重复。该while (!_quit) { ... }代码模式仅仅是我的实际代码的简化。实际上,我的线程是一个长寿命的循环,它以固定的时间间隔(默认为每5秒)处理其工作项的输入队列。实际的退出条件检查也不是示例代码所建议的简单的字段检查,而是事件句柄检查。
10 c#  loops  async 


8
C#foreach的改进?
我经常在编程过程中遇到这种情况,我想在foreach中有一个循环计数索引,并且必须创建一个整数,使用它,递增等。如果引入一个关键字是foreach内部的循环计数?它也可以在其他循环中使用。 这是否与关键字的使用背道而驰,因为编译器将不允许该关键字在循环结构中的任何地方使用?
9 c#  loops 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.