[ C# ] Creazione di oggetti in automatico

sabato 11 settembre 2010 - 12.58
Tag Elenco Tags  C#  |  .NET 1.0  |  .NET 1.1  |  .NET 2.0  |  .NET 3.0  |  .NET 3.5  |  .NET 4.0  |  Windows 7  |  Windows Vista  |  Windows XP  |  Visual Studio 2010  |  Visual Studio 2008

Lokele Profilo | Newbie

CIao ,

Sono alle prime armi con C# e programmazione ad oggetti in generale..

Vorrei creare piu oggetti "Dimmer" tramite un'interfaccia grafica simile ad una toolbox che costruirò più avanti. Il problema è che non so come crearli in modo "dinamico"

ad esempio
Dimmer Dimmer1 = new Dimmer(); Dimmer1.name = " Luce Camera "; Dimmer1.light = 100; Dimmer Dimmer2 = new Dimmer(); Dimmer2.name = " Luce Cucina "; Dimmer2.light = 100;

vorrei scrivere un qualcosa che mi crei l'oggetto come se fosse un array
non so se mi sono spiegato bene..
Grazie per ogni dritta
ciao

AntCiar Profilo | Expert

Ciao.

La cosa più semplice è questa:

dichiarati un contenitore di oggetti di tipo dimmer. Puoi utilizzare ad esempio un dizionario così fai prima a prendere un elemento

esempio:

Dictionary<string, dimmer> listadimmer = new Dictionary<string, dimmer>();


Poi nella tua form per creare i dimmer, inserisci questo codice:

Dimmer d = new Dimmer();
d.name = "........."
d.light = .............

if (!listadimmer .Contains(d.name))
{
listadimmer.add(d.name, d);
}


Il dizionario oltre all'oggetto dimmer prevede una chiave (io l'ho messa come stringa ma puoi mettere qualsiasi tipo)
La cosa importante è che nel dizionario non possono esserci chiavi di valore uguale.

Poi quando ti serve accedere ad un singolo dimmer basta fare:

listadimmer["valore della chiave"] ......

ciao ciao
Cristian Barca

Lokele Profilo | Newbie

Grazie per la risposta
Ottimo il dizionario però dopo averci riflettuto non ho capito se fa al caso mio..

Quello che mi piacerebbe fare è questo:
Ogni volta che clicco su un "controllo" della toolbox automaticamente verrà creato un oggetto di classe Dimmer.

per spiegarmi meglio scrivo questo pseudo codice che ovviamente non funziona

if (click) { // se ho cliccato nControlli++; // crea un nuovo oggetto di indice nControlli Dimmer Dimmer [nControlli] = new Dimmer(); // classe Dimmer Dimmer[nControlli].name = nuovoNome; Dimmer[nControlli].light = nuovoDuty; } L'indice mi serve per accedere più tardi

Grazie ancora
ciao
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5