Come si fa per far eseguire codice passato come stringa??

venerdì 21 gennaio 2005 - 19.04

martiele Profilo | Newbie

Ciao a tutti,
io avrei questo problema, siccome ho cari controlli target (che per ragioni varie non posso mettere sotto forma di vettore) con nomi del tipo:
Combo1
Combo2
Combo3
Combo4

Vorrei realizzare delle funzioni che, una volta passato l'indice di riferimento al controllo, per es:

public sub Visualizza(byval index as integer)
...
end sub

potessi accedere, a seconda dell'indice al "Combo1.qualcosa", "Combo2.qualcosaltro" usando quell'index.
Sapete come potrei fare?!
(senza usare if o switch intendo...)

Grazie per l'attenzione.. buona giornata e buon lavoro

Cteniza Profilo | Guru

L'unica cosa che mi viene in mente è la reflection.
Carichi l'assembly.
Cicli sui tipi, trovi quello con il nome che ti interessa e lo esegui.
Naturalmente devi essere preparato per eventuali parametri da fornire al modulo

Brainkiller Profilo | Guru

Mi sembra una strana implementazione comunque puoi anche fare un for each ciclando sugli oggetti verificando prima se sono Combo, successivamente se contengono per esempio l'indice che hai passato a Visualizza, successivamente fai un casting e dopo questo hai il controllo dell'oggetto, fai quello che vuoi.

ciao
david

martiele Profilo | Newbie

Ok brain, grazie del consiglio...
cmq più che altro era per capire se esiste o meno la possibilità di far eseguire del codice diciamo "arruntime".
In effetti non è molto pulito comunque.

Grazie a tutti e due. ciao
Daniele
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5