Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [VB.NET] Funzione per creazione dinamica di oggetti

    Salve a tutti.

    Vi spiego il mio problema. Dovrei implementare una funzione che mi restituisce un oggetto, ricevendo in input il tipo di oggetto da restituire. In altre parole, una funzione che mi restituisce un oggetto di un certo tipo specificando quest'ultimo in input. Pensavo di implementare un codice di questo tipo:

    codice:
    Function RestituisciOggetto(ByVal TipoOggetto) As Object
    
    Dim Oggetto As Object
    
    Oggetto = New TipoOggetto
    
    Return Oggetto
    
    End Function
    
    
    Sub Main()
    
    Dim OggettoProva1 As Object
    Dim OggettoProva2 As Object
    
    OggettoProva1 = RestituisciOggetto(TextBox)
    OggettoProva2 = RestituisciOggetto(Label)
    
    End Sub
    In questo caso, riuscieri a creare dinamicamente un oggetto di tipo TextBox e uno di tipo Label, utilizzando la mia funzione. Se è possibile fare questo, come devo dichiarare la variabile di input TipoOggetto della funzione. E se non è possibile, esiste qualche soluzione per soddisfare tale richiesta???

  2. #2
    Dovresti dichiarare tipooggetto come Type, ma, al di là del fatto che a questo punto ha più senso scrivere una funzione template, non vedo assolutamente l'utilità di una funzione del genere.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    codice:
    object textBox = Activator.CreateInstance(Type.GetType("System.TextBox"));
    object label = Activator.CreateInstance(Type.GetType("System.Label"));
    Cerco ombrello vecchio, nuovo, moderno o antidiluviano; purché protegga da una pioggia che vien giù come Dio la manda. Fate presto che ho l’acqua alla gola. (Noè)

    C# programming and other stuffs

  4. #4
    Originariamente inviato da chipdb
    codice:
    object textBox = Activator.CreateInstance(Type.GetType("System.TextBox"));
    object label = Activator.CreateInstance(Type.GetType("System.Label"));
    Inanzitutto grazie per la risposta. Ma ho provato il codice, e la funzione Type.GetType("System.TextBox") mi restituisce Nothing, e non il tipo TextBox. ma come faccio a definire un Type???

  5. #5
    Originariamente inviato da chipdb
    codice:
    object textBox = Activator.CreateInstance(Type.GetType("System.TextBox"));
    object label = Activator.CreateInstance(Type.GetType("System.Label"));
    TextBox e Label sono di System.Windows.Forms
    quindi

    codice:
    object textBox = Activator.CreateInstance(Type.GetType("System.Windows.Forms.TextBox"));
    object label = Activator.CreateInstance(Type.GetType("System.Windows.Forms.Label"));

  6. #6
    Ribadisco,
    Originariamente inviato da MItaly
    non vedo assolutamente l'utilità di una funzione del genere.
    ; probabilmente quello a cui ti serve si può implementare in maniera più ortodossa.
    Amaro C++, il gusto pieno dell'undefined behavior.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.