【发布时间】:2012-12-21 17:11:07
【问题描述】:
我有下面的代码(实际上比你看到的要长得多!)
foreach (SensorPair sensor in _sensorPairs)
{
sensorByte = (byte) sensor.Sensor;
if (!packet.Contains(sensorByte))
continue;
index = packet.IndexOf(sensorByte);
byteCount = sensor.ByteCount;
switch (byteCount)
{
case 1:
try
{
switch(sensor.ValueType)
{
case SensorValueType.Unsigned:
val = (int)packet[index + 1];
if (val > 255)
//*** WHAT DOES THIS CONTINUE DO?
continue;
else //rise the event
OnSensorReport();
break;
您看到的 continuekeywoard 是否会导致 foreach 循环开始迭代下一个项目,或者它只是传递到下一个 case 语句?
如果它对 foreach 循环不做任何事情,我该如何强制代码退出 switch 并开始 foreach 循环中的下一次迭代?
【问题讨论】:
-
当前
foreach循环的continues(或跳到下一次迭代)。 -
-1,你测试的时候,发生了什么?
-
它继续循环。转到下一个案例是“goto Case 2;”。
-
谢谢你的否定,我真的需要那个:D
-
我有一个一致的控制结构(循环与 try/catch 包含
switch)。break跳到switch的末尾,continue跳到下一次迭代,异常触发异常处理并继续下一次迭代。 Here is an MCVE 只要 ideONE 保留它。
标签: c# loops foreach switch-statement continue