Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    2

    [VB 2005] Una classe in cui l'utente possa creare le sue proprietà

    Salve a tutti!

    Spero di proporre un quesito interessante. Ho cercato a lungo, purtroppo senza successo.

    Sto cercando in tutti i modi di capire se è possibile creare una classe contenente un metodo che permetta all'utente di definire da sé le proprietà che vuole.

    Mi spiego meglio: ho una classe "Customer". In questa classe vorrei che ci fossero delle proprietà di base, come "Nome" e "Indirizzo" e la possibilità all'utente di definire le proprietà che vuole aggiungere.
    Per esempio il signor Rossi potrebbe volere un oggetto Customer che gli permetta di specificare anche "Età" (Int16) e "Indirizzo" (stringa), mentre il signor Verdi magari preferirebbe "Hobby" (stringa) e "Ultima spedizione merci" (data).

    E' possibile realizzare la cosa? Purtroppo sono ancora un principiante in Visual Basic e avendo vagato un po' per la rete ho sentito parlare di "Reflection", "Property Builder" e "Type Builder", ma non capisco se mi sto complicando semplicemente la vita e se sto cercando nella giusta direzione.

    Potreste aiutarmi a capire se c'è un modo per affrontare la questione?

  2. #2
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,262

    Re: [VB 2005] Una classe in cui l'utente possa creare le sue proprietà

    Originariamente inviato da Tonari
    Salve a tutti!

    Spero di proporre un quesito interessante. Ho cercato a lungo, purtroppo senza successo.

    Sto cercando in tutti i modi di capire se è possibile creare una classe contenente un metodo che permetta all'utente di definire da sé le proprietà che vuole.

    Mi spiego meglio: ho una classe "Customer". In questa classe vorrei che ci fossero delle proprietà di base, come "Nome" e "Indirizzo" e la possibilità all'utente di definire le proprietà che vuole aggiungere.
    Per esempio il signor Rossi potrebbe volere un oggetto Customer che gli permetta di specificare anche "Età" (Int16) e "Indirizzo" (stringa), mentre il signor Verdi magari preferirebbe "Hobby" (stringa) e "Ultima spedizione merci" (data).

    E' possibile realizzare la cosa? Purtroppo sono ancora un principiante in Visual Basic e avendo vagato un po' per la rete ho sentito parlare di "Reflection", "Property Builder" e "Type Builder", ma non capisco se mi sto complicando semplicemente la vita e se sto cercando nella giusta direzione.

    Potreste aiutarmi a capire se c'è un modo per affrontare la questione?
    Non esiste la reflection in VB 2005 ma in VB.NET!!
    I got the remedy

  3. #3
    Utente di HTML.it L'avatar di tekanet
    Registrato dal
    Oct 2001
    Messaggi
    299
    Reflection, in tutto l'ambiente .NET, serve per leggere a posteriori la struttura e i valori di un tipo; nel tuo caso non credo sia necessario.

    Più che altro, potresti risolvere il problema con:
    2 metodi di inserimento e lettura di valori per le property "estese"
    1 o più dictionary interni (1 per ogni tipo di dati ad esempio) che contengono chiavi (nomi delle proprietà) e valori (valori delle proprietà)

    Per l'inserimento potresti mettere n overload, uno per tipo di dati (SetExtendedPropertyValue(string, integer) - SetExtendedPropertyValue(string, string) etc). Ogni overload andrà ad inserire nell'apposito dizionario il valore.

    Per la lettura potresti usare un metodo generico GetExtendedPropertyValue(Of T)(string) as T, facendo poi una select case sul tipo T per sapere in quale dictionary cercare i valori

    Ho buttato lì giusto due idee, eventualmente approfondiscile tu !

    HTH, tK

  4. #4

    Re: Re: [VB 2005] Una classe in cui l'utente possa creare le sue proprietà

    Originariamente inviato da albgen
    Non esiste la reflection in VB 2005 ma in VB.NET!!
    VB 2005 è VB.NET, precisamente VB.NET 8.0 (ossia VB.NET per .NET Framework 2.0).
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it L'avatar di tekanet
    Registrato dal
    Oct 2001
    Messaggi
    299
    Senza andare troppo OT e per dovere di cronaca: la nomenclatura VB 2005 si riferisce più all'ambiente di sviluppo (Visual Studio 2005) che al linguaggio. Un esempio più comprensibile: secondo il tuo ragionamento, VB 2008 dovrebbe essere VB 9. Questo non è vero, perché con Visual Studio 2008 si possono gestire progetti dal framework 2.0 al 3.5.. Quindi, lasciamo la nomenclatura con gli anni alle versioni di Visual Studio; il linguaggio ha già i suoi nomi che seguono il numero di versione.

    tK

  6. #6
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,262
    Originariamente inviato da tekanet
    Senza andare troppo OT e per dovere di cronaca: la nomenclatura VB 2005 si riferisce più all'ambiente di sviluppo (Visual Studio 2005) che al linguaggio. Un esempio più comprensibile: secondo il tuo ragionamento, VB 2008 dovrebbe essere VB 9. Questo non è vero, perché con Visual Studio 2008 si possono gestire progetti dal framework 2.0 al 3.5.. Quindi, lasciamo la nomenclatura con gli anni alle versioni di Visual Studio; il linguaggio ha già i suoi nomi che seguono il numero di versione.

    tK
    infatti, io ho capito vb sviluppato con vs2005...
    I got the remedy

  7. #7
    La mia precisazione era solo volta ad evitare l'equivoco che poteva verificarsi per come era posta la risposta di albgen, per cui sembrava che in VB2005 non esistesse la reflection.

    In ogni caso ad ogni nuova versione dell'ambiente di sviluppo corrisponde una nuova versione del compilatore, per cui si può fare tranquillamente il parallelo VB.NET 2002 => VB.NET 7.0; VB.NET 2003 => VB.NET 7.1; VB 2005 => VB.NET 8.0; VB 2008 => VB.NET 9.0, per quanto tutti gli IDE successivi a VB.NET 2003 supportino la compilazione con versioni precedenti del compilatore (fino alla 7.1) per framework precedenti.
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Utente di HTML.it L'avatar di tekanet
    Registrato dal
    Oct 2001
    Messaggi
    299
    per quanto tutti gli IDE successivi a VB.NET 2003 supportino la compilazione con versioni precedenti del compilatore (fino alla 7.1) per framework precedenti.
    Ora siamo ufficialmente OT, ma la questione mi preme: con Visual Studio 2005 puoi compilare per framework 1.0 e/o 1.1? Con Visual Studio 2008 puoi compilare per framework 1.0 e/o 1.1? Non mi risulta, ma magari è una funzione che mi sono perso...

  9. #9
    Non ne sono sicuro, ma mi pare che si potesse fino alla 1.1... dopo controllo.
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    Non potresti utilizzare il database?
    Io ti suggerirei di utilizzare quello
    "Che differenza c'è tra un telescopio e una scarpa stretta? - Nessuna! Tutte due fanno vedere le stelle!"
    **********
    Homeworld 2, il gioco potente che ho mai incontrato!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved.