if a CASE clause is fired early on in the block

Mango Kid92

New Member
Italian
Salve sono Italiano, sto leggendo un libro tecnico in inglese di C# e c'è una frase che non riesco a capire:
"This means that if a CASE clause is fired early on in the block, later clauses cannot be fired unless you use a GOTO statement to mark that you want them fired,too. The compiler enforces this restriction by flagging every CASE clause that is not equipped with a BREAK statement as an error."

Io capisco "Questo significa che se una clausula CASE e licenziata presto in questo blocco, piu tardi le clausule non possono essere coperte a meno che tu usa un GOTO per marcare che tu vuoi anche loro licenziate.
Il compilatore forza questa restrizione (mettendo una bandierina) segnalando ogni clausula CASE che non ha un BREAK come un errore"

----
Vi ringrazio per il vostro aiuto anticipatamente
Matteo
 
Last edited by a moderator:
  • Angel.Aura

    Senior Member
    Italian
    Ciao Mango Kid92,

    La correzione di lunghi paragrafi non è ammessa su WR, quindi concentriamoci solo su una questione specifica.
    Ricorda anche che per ciascun thread trattiamo un argomento.
    Nuova domanda, nuova discussione.

    Grazie per la collaborazione.
     

    baldpate

    Senior Member
    UK, English
    Secondo me la prima frase e' scritta in una maniera poco chiara. Io l'avrei scritta cosi' in inglese:
    "This means that if control is passed to a CASE clause near the start of the block, no subsequent clause may receive control unless you use a GOTO to transfer it there."

    E la tradurrei con:

    "Questo significa che se il controllo viene trasferito a una clausola CASE vicino all'inizio del block, nessuna [clausola] seguente puo' ricevere il controllo a meno che non tu usa un GOTO per trasferircelo. ... ecc "

    Non mi piace l'uso di "to fire" in questo contesto (verbo che si usa normalmente per descrivere un trasferimento di controllo che e' suscitato da un evento improviso - tipo "mouse click" o "overflow error"). Ma se vuoi usarlo, sicuramente la traduzione non sarebbe "licenziare" - forse "accendere"?

    "early on" e "later" non si riferiscono al tempo, ma alle posizioni relative delle istruzioni CASE nel corpo(?body) dell' istruzione SWITCH.
     

    renminds

    Senior Member
    Italian - Italy
    "This means that if a CASE clause is fired early on in the block, later clauses cannot be fired unless you use a GOTO statement to mark that you want them fired,too. The compiler enforces this restriction by flagging every CASE clause that is not equipped with a BREAK statement as an error."

    Non mi piace l'uso di "to fire" in questo contesto (verbo che si usa normalmente per descrivere un trasferimento di controllo che e' suscitato da un evento improviso - tipo "mouse click" o "overflow error"). Ma se vuoi usarlo, sicuramente la traduzione non sarebbe "licenziare" - forse "accendere"?

    "early on" e "later" non si riferiscono al tempo, ma alle posizioni relative delle istruzioni CASE nel corpo(?body) dell' istruzione SWITCH.

    Baldpate ha ragione, si tratta di una istruzione SWITCH...CASE. Questo tipo di istruzioni vengono chiamate "clause" perché hanno una loro sintassi e delimitano un blocco (block) di istruzioni minori.
    Inoltre penso che "fire" sia appropriato perché, considerandolo proprio come "rispondente" ad un evento, descrive il fatto che una istruzione CASE soddisfa i criteri di selezione dello SWITCH... se dovessi dirlo con una parola userei "verificato" nello spirito di "to match", verbo ostico da tradurre.

    Ecco come tradurrei io la frase:

    "Questo signica che se una istruzione CASE è verificata in cima al/nelle prime posizioni del blocco, quelle successive non possono essere verificate a meno che non usi una istruzione GOTO per indicare che vuoi che anche loro siano verificate. Il compilatore mette in pratica questa restrizione contrassegnando tutte le istruzioni CASE non analizzate con una istruzione BREAK che funge da errore/non corrispondenza."

    ma devo ammettere che ho qualche dubbio sull'ultima frase.
    Forse Baldpate può darci una mano.

    Ciao,
    Renminds
     
    Top