c# - name - meta tags seo
El control no puede pasar por la etiqueta de un caso (7)
Al final de cada caso, simplemente agregue la declaración de interrupción para resolver este problema de esta manera:
switch (manu)
{
case manufacturers.Nokia:
_phanefact = new NokiaFactory();
break;
case manufacturers.Samsung:
_phanefact = new SamsungFactory();
break;
}
Intento escribir una declaración de cambio que escriba el término de búsqueda en el campo de búsqueda dependiendo de la caja de texto de búsqueda que esté presente. tengo el siguiente código. Pero recibo el error "El control no puede pasar por una etiqueta de caja". Por favor hazme saber como arreglar esto. ¡Gracias por adelantado!
switch (searchType)
{
case "SearchBooks":
Selenium.Type("//*[@id=''SearchBooks_TextInput'']", searchText);
Selenium.Click("//*[@id=''SearchBooks_SearchBtn'']");
case "SearchAuthors":
Selenium.Type("//*[@id=''SearchAuthors_TextInput'']", searchText);
Selenium.Click("//*[@id=''SearchAuthors_SearchBtn'']");
}
El control no puede pasar de una etiqueta de caso (''caso'' SearchBooks ": '') a otra
El control no puede pasar de una etiqueta de caso ("caso" SearchAuthors ": '') a otra
Necesita agregar una declaración de interrupción:
switch (searchType)
{
case "SearchBooks":
Selenium.Type("//*[@id=''SearchBooks_TextInput'']", searchText);
Selenium.Click("//*[@id=''SearchBooks_SearchBtn'']");
break;
case "SearchAuthors":
Selenium.Type("//*[@id=''SearchAuthors_TextInput'']", searchText);
Selenium.Click("//*[@id=''SearchAuthors_SearchBtn'']");
break;
}
Esto supone que desea manejar el caso de SearchBooks
o los SearchAuthors
: como lo había escrito, en una declaración de conmutación de estilo C tradicional, el flujo de control habría "caído" de una declaración de caso al siguiente significado que las 4 líneas de código se ejecuta en el caso de que searchType == "SearchBooks"
.
El error del compilador que está viendo se introdujo (al menos en parte) para advertir al programador de este posible error.
Como alternativa, podría haber arrojado un error o haber regresado de un método.
Necesitas break;
, throw
, goto
o return
de cada una de las etiquetas de su caso. En un ciclo, también puedes continue
.
switch (searchType)
{
case "SearchBooks":
Selenium.Type("//*[@id=''SearchBooks_TextInput'']", searchText);
Selenium.Click("//*[@id=''SearchBooks_SearchBtn'']");
break;
case "SearchAuthors":
Selenium.Type("//*[@id=''SearchAuthors_TextInput'']", searchText);
Selenium.Click("//*[@id=''SearchAuthors_SearchBtn'']");
break;
}
La única vez que esto no es cierto es cuando las etiquetas de las cajas se apilan de esta manera:
case "SearchBooks": // no code inbetween case labels.
case "SearchAuthors":
// handle both of these cases the same way.
break;
Puedes hacer algo más que pasar por alto en C #, pero debes utilizar la declaración goto "temida". Por ejemplo:
switch (whatever)
{
case 2:
Result.Write( "Subscribe" );
break;
case 1:
Result.Write( "Un" );
goto case 2;
}
Te perdiste algunos descansos allí:
switch (searchType)
{
case "SearchBooks":
Selenium.Type("//*[@id=''SearchBooks_TextInput'']", searchText);
Selenium.Click("//*[@id=''SearchBooks_SearchBtn'']");
break;
case "SearchAuthors":
Selenium.Type("//*[@id=''SearchAuthors_TextInput'']", searchText);
Selenium.Click("//*[@id=''SearchAuthors_SearchBtn'']");
break;
}
Sin ellos, el compilador cree que está intentando ejecutar las líneas debajo del case "SearchAuthors":
inmediatamente después de que se hayan ejecutado las líneas en el case "SearchBooks":
cual no está permitido en C #.
Al agregar las declaraciones de break
al final de cada caso, el programa sale de cada caso una vez que se haya completado, independientemente del valor de searchType
.
Te perdiste las sentencias de break. No olvides ingresar la declaración de break incluso en el caso predeterminado.
switch (searchType)
{
case "SearchBooks":
Selenium.Type("//*[@id=''SearchBooks_TextInput'']", searchText);
Selenium.Click("//*[@id=''SearchBooks_SearchBtn'']");
break;
case "SearchAuthors":
Selenium.Type("//*[@id=''SearchAuthors_TextInput'']", searchText);
Selenium.Click("//*[@id=''SearchAuthors_SearchBtn'']");
break;
default :
Console.WriteLine("Default case handling");
break;
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Case_example_1
{
class Program
{
static void Main(string[] args)
{
Char ch;
Console.WriteLine("Enter a character");
ch =Convert.ToChar(Console.ReadLine());
switch (ch)
{
case ''a'':
case ''e'':
case ''i'':
case ''o'':
case ''u'':
case ''A'':
case ''E'':
case ''I'':
case ''O'':
case ''U'':
Console.WriteLine("Character is alphabet");
break;
default:
Console.WriteLine("Character is constant");
break;
}
Console.ReadLine();
}
}
}