Newsgroup: it.comp.lang.visual-basic
Titolo: [Sfogo LT] SELECT CASE e tipi enumerativi

Quando uso un operatore su una variabile di tipo enumerativo, VB mi 
presenta l'elenco dei valori disponibili. Quando pero' uso il costrutto 
SELECT CASE, VB se ne impippa altamente, costringendomi o a spremermi le 
meningi per recuperare le costanti opportune, o a sostituire il SELECT 
CASE con una catena di IF...THEN...ELSEIF...ENDIF, IMHO veramente 
brutta. Non c'e' modo di rimediare a cio'? Giro la domanda: a nessuno 
sono girate le p...e per questo comportamento? Se su .NET le cose sono 
uguali, presumo che il SELECT CASE sia sconosciuto, o quanto meno 
bellamente ignorato, agli sviluppatori MS...
-- 
Bye by SixaM 8-]
-----------------------------
Sito comune: 
www.it-lang-vb.net
P.S. LT -> Lateral topic

"SixaM" <mca...@NOSPAMmacinform.it> ha scritto nel messaggio
news:MPG.178e311f7...@news.enter.it...
| Quando uso un operatore su una variabile di tipo enumerativo, VB mi
| presenta l'elenco dei valori disponibili. Quando pero' uso il costrutto
| SELECT CASE, VB se ne impippa altamente, costringendomi o a spremermi le
| meningi per recuperare le costanti opportune, o a sostituire il SELECT
| CASE con una catena di IF...THEN...ELSEIF...ENDIF, IMHO veramente
| brutta. Non c'e' modo di rimediare a cio'? Giro la domanda: a nessuno
| sono girate le p...e per questo comportamento? Se su .NET le cose sono
| uguali, presumo che il SELECT CASE sia sconosciuto, o quanto meno
| bellamente ignorato, agli sviluppatori MS...
che hai fumato??
enum eProva
   valoreUno = 0
   valoreDue = 1
end enum
...
...
public sub .... (byval Tipo as eProva)
   ...
   ...
   select case eProva
       case valoreUno
             ...
             ...
       case valoreDue
             ...
             ...
   end select
end sub
se vuoi essere servo-assistito...
l'unica cosa che devi fare e' copiarti eProva, incollarlo
dopo case e metterci =, compare l'enum, scegli e confermi,
cancelli eProva =
fatto.
saluti
--
[ Penguin At Work ]
-> 
http://web.tiscali.it/penguinatwork/
-> aka Fustino Di Dixan while working

"Fustino di Dixan" <acer...@penguinAtWork.it> ha scritto nel messaggio
news:ag14ah$9s9$1...@phobos.ibnetwork.net...
ops... sed -e 's/eProva/Tipo/g'
scusa ancora!


 bellamente ignorato, agli sviluppatori MS...
    Dim TuaVar = TuaEnum
    Select Case True
    Case TuaVar = ...
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------

     Case TuaVar = ...
Secondo me ha ragione Sixam a lamentarsi. Il sistema che hai illustrato tu
funziona, ma allora è meglio usare le IF.
Con quel sistema lì, il compilatore crea una If impropria all'inizio (if -1
= -1 then) e una serie di If nidificate di fila. Se invece usi direttamente
tu le If nidificate, ti risparmi almeno la prima impropria.
In realtà (se il compilatore è furbo) una Select Case dovrebbe essere
compilata in Assembly sfruttando la contiguità dei valori di enum da
confrontare, usando una tabella di salti indiretti che portino al punto di
ingresso delle sottoprocedure di ogni Select Case. Mi sa però che questo
genere di furbizia il compilatore VB se la sogna... ;-)
Ciao
*Roby*

 
Se utilizzi MZtools c'e' una funzione che permette di creare 
automaticamente il costrutto select case ..., scegliendo i valori che ti 
interessano.
www.mztools.com
In
http://k-offline.com/mz-tools/features.htm
cerca
Select Case Assistant For Enum Expressions
ciao
		maxx

 genere di furbizia il compilatore VB se la sogna... ;-)
--


 		maxx
Ce l'ho MzTools...mi girano un po' xche' devo ricorrere ad (ottimi) tool 
esterni per supplire a carenze IMHO strutturali...


 esterni per supplire a carenze IMHO strutturali...
Meglio MzTools che niente! ;-)
Ed e' gratuito!!!
ciao
		maxx

"Massimo Conter" ha scritto nel messaggio

MIIIIIIIIIIIIII !!!! C'è la versione per VB5 :-))))))
Pap.Joy