Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [Vb.net 2010] Passare il tipo di una variabile ad un vincolo generic
Forum - C# / VB.NET - [Vb.net 2010] Passare il tipo di una variabile ad un vincolo generic

Avatar
crucio1 (Normal User)
Newbie


Messaggi: 1
Iscritto: 04/09/2010

Segnala al moderatore
Postato alle 10:29
Mercoledì, 31/10/2012
Ciao a tutti ragazzi, volevo sapere se c'era un modo per poter inserire in una determinata variabile x il tipo della variabile y

in modo da passare il suddetto tipo ad un vincolo di una classe che in caso gli venga passato un tipo che non "piace" al vincolo lanci un eccezione...

io ho provato una cosa del genere

Codice sorgente - presumibilmente VB.NET

  1. '...
  2. Dim x(3) As Student = '.....
  3. Dim y As type = x.GetType
  4. array.sort(x, New SortByGrade(of y)
  5. '...



Ma naturalmente non funziona....qualche idea?

Grazie in anticipo

P.S Se non rispondo è perchè sono in viaggio :P ... vi rispondo verso le 4 :P


Work In Progress
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 10:34
Mercoledì, 31/10/2012
Scusate non riuscivo a recuperare la password di questo account...vi rispondo con questo!

PM Quote
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Segnala al moderatore
Postato alle 10:47
Mercoledì, 31/10/2012
Ciao.
Devi fare tu una verifica prima di usare il metodo sort.
La sintassi è questa:
Codice sorgente - presumibilmente C#

  1. TypeOf 'NomeOggetto' Is 'NomeClasse'
  2.  
  3. 'In un IF
  4.  
  5. if TypeOf(X) Is Student



Se X è uno student, lo puoi processare perché hai metodi di ordinamento.
Altrimenti devi creare una classe, aggiungere l'interfaccia IComparable e scrivere tu i metodi per far si che il compilatore capisca in base a cosa vuoi ordinare gli oggetti della tua classe..





In attesa della fine del mondo, fissata per l'anno prossimo, sono alla ricerca di un notaio con cui fare testamento...
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 10:54
Mercoledì, 31/10/2012
quindi più semplicemente ancora posso usare il TypeOf in un costrutto if e fare le dovute verifiche e prendere le azioni più appropriate di conseguenza...utile a sapersi XD ....ma comunque non esiste comunque un modo per dare ad una variabile il tipo di un altra...potrebbe comunque tornarmi utile in un'altra situazione :yup:

PM Quote
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Segnala al moderatore
Postato alle 11:16
Mercoledì, 31/10/2012
Ho fatto un paio di prove, magari esistono anche altri sistemi, ma io farei così:
1) crei una variabile di tipo object (var B)
2) verifichi  tipo della variabile che hai già (var A)
3) fai una conversione esplicita (casting) della variabile B, specificando come tipo il "tipo della A
ciao

Ultima modifica effettuata da Renny il 31/10/2012 alle 11:17


In attesa della fine del mondo, fissata per l'anno prossimo, sono alla ricerca di un notaio con cui fare testamento...
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 22:31
Mercoledì, 31/10/2012
Non capisco se ti riferisci alla dichiarazione o all'uso. Dopo la dichiarazione, il tipo generic viene inferito:
Codice sorgente - presumibilmente C# / VB.NET

  1. void DoSomething<T>(T obj, IComparer<T> comp)


Se T è Student, allora comp deve essere di tipo IComparer<Student>...


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 20:21
Giovedì, 01/11/2012
intendo nell'uso, cioè forse non mi sono spiegato bene...a me serviva dare a una "variabile" che contenesso come contenuto solo il tipo (int32,string,...), praticamente che questa "variabile" x, venga riconosciuta dalla classe con un generics come int32,etc. in modo da far fare alla mia classe un tipo di metodo quando è integer, o un altro quando è di tipo string ad esempio non sò se mi spiego.

PM Quote