PDA

View Full Version : [.net]e goto


MasterDany
03-05-2008, 14:02
Ciao a tutti stavo leggendo i tutorial ufficiali a C# di Microsoft:
http://msdn.microsoft.com/it-it/library/zkxk2fwf.aspx
http://msdn.microsoft.com/it-it/library/67ef8sbd.aspx
http://msdn.microsoft.com/it-it/library/67ef8sbd.aspx
E mi sono accorto che zio Bill non ha levato il comando goto.Me ne sono state dette di tutti i colori su questa parola ma perchè la microsoft non l'ha levata?
Se è inutile che ce l'hanno messo a fare? :confused:
Bisogna impararlo?
Ma soprattutto a che serve?

wizard1993
03-05-2008, 14:06
il goto è utille per far salti fra un etichetta switch all'altra, questo argomento è già stato discusso qui
http://www.hwupgrade.it/forum/showthread.php?t=1698555&highlight=goto

tomminno
03-05-2008, 14:42
Ciao a tutti stavo leggendo i tutorial ufficiali a C# di Microsoft:
http://msdn.microsoft.com/it-it/library/zkxk2fwf.aspx
http://msdn.microsoft.com/it-it/library/67ef8sbd.aspx
http://msdn.microsoft.com/it-it/library/67ef8sbd.aspx
E mi sono accorto che zio Bill non ha levato il comando goto.Me ne sono state dette di tutti i colori su questa parola ma perchè la microsoft non l'ha levata?
Se è inutile che ce l'hanno messo a fare? :confused:
Bisogna impararlo?
Ma soprattutto a che serve?

A consentire di scrivere il .NET.
Trovi il goto usato in praticamente tutte le classi base del .NET ed è usato senza troppi risparmi nei sorgenti C++ del framework.
Evidentemente alla fine degli anni 90 in Microsoft lo ritenevano ancora utile.
Basta sapere che c'è e passare oltre.

MasterDany
03-05-2008, 14:45
Quindi è inutilizzabile nelle mie applicazioni?
Non ha capito a che serve.Ho capito solo che con il comando goto si può uscire da cilci nidificati.Ci sono altre cose da sapere?

Grazie ;)

khelidan1980
03-05-2008, 14:54
nei tutorial di C# viene usato il goto?Mi pare assai strano....

MasterDany
03-05-2008, 14:55
si :)

khelidan1980
03-05-2008, 14:56
si :)

dove?linkami un pagina precisa,ripeto i tutorial non il sorgente del C#

MasterDany
03-05-2008, 15:15
Subito :
http://msdn.microsoft.com/it-it/library/13940fs2.aspx
http://msdn.microsoft.com/it-it/library/s3xe34ex.aspx

Io non ho capito questo uso:
L'istruzione goto viene generalmente utilizzata per trasferire il controllo a un'etichetta case specifica di un'istruzione switch o all'etichetta predefinita di un'istruzione switch.
avete altri esempi?

Grazie mille a tutti :)

khelidan1980
03-05-2008, 15:19
Subito :
http://msdn.microsoft.com/it-it/library/13940fs2.aspx
http://msdn.microsoft.com/it-it/library/s3xe34ex.aspx

Io non ho capito questo uso:

avete altri esempi?

Grazie mille a tutti :)

lascia perdere l'istruzione goto,per ora non ti interessa nemmeno sapere che esiste,non è una cosa che deve imparare uno che inzia a programmare,più avanti se ti vuoi fare una cultura sul coding horror la guarderai! ;)

MasterDany
03-05-2008, 15:19
:cry: :cry:
Ma non è utile?

MasterDany
03-05-2008, 15:20
Se riesco a capire a che serve :mad:

khelidan1980
03-05-2008, 15:23
:cry: :cry:
Ma non è utile?

no

MasterDany
03-05-2008, 15:25
voglio sapere comunque a che serve :mad:

wizard1993
03-05-2008, 16:01
voglio sapere comunque a che serve :mad:

te l'ho già detto; il suo utilizzo primario è quello di passare da un etichetta switch all'altra

VICIUS
03-05-2008, 16:03
http://world.std.com/~mica/mib.jpg
Il goto NON esiste.

MasterDany
03-05-2008, 16:04
http://world.std.com/~mica/mib.jpg
Il goto NON esiste.

:mbe:

arcer
03-05-2008, 16:16
ti faccio un esempio:

variabile a=0;
etichetta1:
istruzione 1;
istruzione 2;
istruzione 3;
a=a+1;
se a!=5
goto etichetta1;
istruzione 4;
istruzione 5;



capito a che serve?
di solito viene considerato un orrore e ci sono diverse scuole di pensiero (l'ho chiesto ad alcuni prof all'uni):

1° il goto non si usa perche generela salti nella lettura del codice ed inoltre genera lo svuotamato del buffer d'esecuzione ovvero

operazione che si sta eseguendo--------> X

operazioni nel buffer------> z,w,f,d,q
se si esegue un goto il buffer si deve svuotare e riempire....


soluzione strana :mbe:

2° secondo il teorema di Jacopini-Bhom (http://it.wikipedia.org/wiki/Teorema_di_B%C3%B6hm-Jacopini) ogni algoritmo può essere eseguito con le tre strutture basilari ovvero : la sequenza, la selezione ed il ciclo

questo teorema ovviamente entra in forte contrasto con l'idea del goto e quindi il goto nella programmazione strutturata è stato appunto chiamato l'ORRORE

3° è ovvio che usare il goto rende il codice poco leggibile e quindi anche per una specie di "convezione" e comodità è meglio non usarlo....



se vuoi dargli na lettura

http://en.wikipedia.org/wiki/GOTO

MasterDany
03-05-2008, 16:17
grazie ;)

arcer
03-05-2008, 16:19
grazie ;)

e di che ;)

marko.fatto
03-05-2008, 17:08
1° il goto non si usa perche generela salti nella lettura del codice ed inoltre genera lo svuotamato del buffer d'esecuzione ovvero

operazione che si sta eseguendo--------> X

operazioni nel buffer------> z,w,f,d,q
se si esegue un goto il buffer si deve svuotare e riempire....


soluzione strana :mbe:

non è per il discorso del prefetch dei dati? :stordita:

prefetch (http://it.wikipedia.org/wiki/Prefetch) c'è proprio l'esempio su "Funzionamento" di come il salto gli rompa le scatole :asd:

-Slash
03-05-2008, 17:10
puoi andare da una linea di codice ad un'altra con il goto.

arcer
03-05-2008, 17:24
non è per il discorso del prefetch dei dati? :stordita:

prefetch (http://it.wikipedia.org/wiki/Prefetch) c'è proprio l'esempio su "Funzionamento" di come il salto gli rompa le scatole :asd:

si la logica è quella non ricordavo il nome...thenkiu:D

MasterDany
03-05-2008, 20:23
non è per il discorso del prefetch dei dati? :stordita:

prefetch (http://it.wikipedia.org/wiki/Prefetch) c'è proprio l'esempio su "Funzionamento" di come il salto gli rompa le scatole :asd:

;)

tomminno
04-05-2008, 12:49
voglio sapere comunque a che serve :mad:

Non serve a niente.
E' una cattivissima pratica di programmazione usare il goto.
E il fatto che Windows o il .NET o Linux ne facciano largo uso non promuove certamente il goto a rango di istruzione da usare.

MasterDany
04-05-2008, 12:50
Non serve a niente.
E' una cattivissima pratica di programmazione usare il goto.
E il fatto che Windows o il .NET o Linux ne facciano largo uso non promuove certamente il goto a rango di istruzione da usare.

:p