Oppure

Loading
31/10/12 9:29
crucio1
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

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


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
aaa
31/10/12 9:34
Scusate non riuscivo a recuperare la password di questo account...vi rispondo con questo!
31/10/12 9:47
Renny
Ciao.
Devi fare tu una verifica prima di usare il metodo sort.
La sintassi è questa:
TypeOf 'NomeOggetto' Is 'NomeClasse'

'In un IF

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..



aaa
31/10/12 9:54
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:
31/10/12 10:16
Renny
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 31/10/12 10:17
aaa
31/10/12 21:31
Il Totem
Non capisco se ti riferisci alla dichiarazione o all'uso. Dopo la dichiarazione, il tipo generic viene inferito:
void DoSomething<T>(T obj, IComparer<T> comp)

Se T è Student, allora comp deve essere di tipo IComparer<Student>...
aaa
01/11/12 19:21
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.