Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117

    [VB.NET] - Passare una tipologia come argomento

    Ciao a tutti.
    Esiste un modo per passare la tipologia di un controllo (oggetto) come argomento a sub e funzioni?

    Mi spiego meglio

    codice:
        sub prova(contenitore as panel, my_ARG as ????)
                          dim contaCtrl as integer=0
                          For Each c As Control In contenitore.Controls
                                If TypeOf c Is my_ARG Then
                                      contaCtrl += 1
                                End If
                          Next
                   end sub
    posso passare un valore del genere come argomento?

    Grazie!

  2. #2

  3. #3
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    Quote Originariamente inviata da optime Visualizza il messaggio
    Siii! Ce l'ho fatta!

    codice:
    sub prova(of t)(contenitore as panel)
                          dim contaCtrl as integer=0
                          ForEach c AsControlIn contenitore.Controls
                                IfTypeOf c Is t Then
                                      contaCtrl +=1
                                EndIf
                          Next
                   endsub
    
    
    e per richiamarla

    codice:
    prova(of miaTipologiaDiClasse)(mioContenitore)

  4. #4

  5. #5
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,536
    Quote Originariamente inviata da Veronica80 Visualizza il messaggio
    Siii! Ce l'ho fatta!

    codice:
    sub prova(of t)(contenitore as panel)
                          dim contaCtrl as integer=0
                          ForEach c AsControlIn contenitore.Controls
                                IfTypeOf c Is t Then
                                      contaCtrl +=1
                                EndIf
                          Next
                   endsub
    
    
    e per richiamarla

    codice:
    prova(of miaTipologiaDiClasse)(mioContenitore)
    Se ti serve ricavare un tipo specifico contenuto in un tipo IList (Controls dovrebbe esserlo), come da codice in esempio (contare i controlli di quel tipo), allora ti basta usare OfType(Of miaTipologiaDiClasse), su questo puoi usare il Count; Where; Contains ecc.

    esempio:
    codice:
    'conta tutti gli elementi di tipo: "miaTipologiaDiClasse"
    NumeroControlli = contenitore.Controls.OfType(Of miaTipologiaDiClasse).Count()
    Se poi ti serve proprio per passare un tipo ad una funzione, come da richiesta, allora hai già una risposta.
    Ultima modifica di U235; 06-10-2023 a 08:29

  6. #6
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,536
    _

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.