Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Sovrascrivere una classe

    E' possibile creare una classe che eredita da un'altra, per esmpio creo una classe MioDataGrid che eredita da DataGrid e posso estenderla come mi pare e poi utilizzarla nel mio codice l'oggetto MioDataGrid. Stesso discorso per qualunque altro tipo di classe.

    E' possibile invece "sovrascrivere" uan classe, nel senso che creo sempre uan mia classe che eredita da DataGrid aggiungo delel funzionalità ma invece di chiamarla MioDataGrid è proprio l'oggetto DataGrid che, all'interno del mio progetto, diventa la nuova classe avendo le nuove proprietà che ho aggiunto.

    Non è molto ortodosso però se mi interessa estendere giusto un DataGrid opppure aggiungere un metodo a String dovrei poi ovunque ho dichiarato variabili del genere andare a modificarle, specialmente nel caso del DataGrid

  2. #2
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    Non c'ho capito molto in ciò che hai scritto, ma in linea teorica potresti nascondere ogni metodo della classe base usando
    codice:
    modificatore_accesso new tipo_restituito NomeMetodo()
    {
    //Implementazione
    }
    ...comunque spiegati meglio.
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  3. #3
    Creo una classe MioDataGrid che deriva da DataGrid, e dentro ci aggiungo metodi o qualunque altra cosa.

    Ora per utilizzarla devo dichiarare uan variabile come MioDataGrid

    Public c as MioDataGrid

    Vorrei invece utilizzare la mia classe dichiarando DataGrid

    Public c as DataGrid


    Praticamente vorrei non creare una nuova classe MioDataGrid ma "sovrascrivere" la classe DataGrid del framework, ovviamente solo all'interno del progetto.

    Chiedevo se esisteva una parola chiave che mi permetteva di fare questo alla creazione della classe che sò: "Public class Datagrid overwirte Datagrid" ma purtroppo in altro forum mi hanno detto che con le attuali capacità del framework è impossibile

  4. #4
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    Con le attuali capacità del framework? e chi t'ha detto "questa stronzata"?.. io parlerei di capacità del programmatore...

    Hai mai sentito parlare di Web Control Library... ecco, questo è il tipo caso in cui dovresti iniziare a fare qualche ricerca a proposito.
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  5. #5
    il mio esempio sul DataGrid era appunto solo un esempio quello he dicevo era generico per qualsiasi classe che ne estendesse uan del framework

    Forse non hai capito cosa intendo. So benisismo che posso estendere una classe e nel caso di oggetti Web posso utilizzare o le Web control Library o anche gli User Control.

    Io volevo semplicemente sapere se è possibile estendere una classe del framework e continuarla "a chiamare" con il proprio nome e non con il noem della nuova classe.

    Es.
    voglio aggiungere un metodo alla Classe System.Web.UI.WebControls.TextBox per esempio un metodo che mi inverta la strigna del value dall'ultimo al primo carattere (Non parlaimo dle metodo dell'inutilità e della facilità di falro in tre righe di codice è solo un esmpio)
    Ora diciarerei una classe così:
    Public Class TextBoxMod
    System.Web.UI.WebControls.TextBox
    ...
    ...
    End Class


    All'interno ci sarà il mio nuovo metodo "InvertiValue"

    Perfetto se voglio utilizzarla dichiaro un oggetto come "TextBoxMod" e avrò una textbox normale con in più quel metodo.

    La mia domanda era:
    è possibile fare in modo che *solo all'interno di un progetto* invece di chiarare un oggetto come "TextBoxMod" lo continuo a dichiarere TextBox ma mi "punta" a TextBoxMod?

    Chiedevo se ci fosse un comando che dicesse "all'interno del progetto quando dichiaro TextBox" punta alla sua classe derivata TextBoxMod.


    Mi hanno detto che attulmentenon è possibile ma che in versioni future dle framework forse sarà possibile "aggiungere" deimetodi a classi esistenti ....che poi è quello che seriva a me

  6. #6
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    I
    Chiedevo se ci fosse un comando che dicesse "all'interno del progetto quando dichiaro TextBox" punta alla sua classe derivata TextBoxMod.
    ClasseBase oggettoDerivato = new ClasseDerivata();


    Se hai chiesto questo, la risposta è si.
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  7. #7
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    perdonami la domanda stupida, ma perche' vuoi fare una cosa del genere ? Non ha piu' senso DISTINGUERE la tua classe derivata e potenziata da quella madre ?

    Il concetto di cui parli si chiama "SuperClassing dei controlli server" e rientra nella stesura dei CustomControls...

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da djciko
    perdonami la domanda stupida, ma perche' vuoi fare una cosa del genere ? Non ha piu' senso DISTINGUERE la tua classe derivata e potenziata da quella madre ?

    Il concetto di cui parli si chiama "SuperClassing dei controlli server" e rientra nella stesura dei CustomControls...
    Io ho un problema molto simile, anche se forse più banale.

    Ho riscritto la funzione basic IIF utilizzando i generics e volevo che tutte le pagine che usavano IIF microsoft, utilizzassero il mio IIF.
    C'è una soluzione che non sia quella di chiamare la funzione con nome diverso o quello di interporre uno spazio dei nomi adeguato? :master:
    Pietro

  9. #9
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    ehm...."trova e sostituisci" di Visual Studio

  10. #10
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da djciko
    ehm...."trova e sostituisci" di Visual Studio
    :quote:
    rettifico la domanda di prima

    C'è una soluzione che non sia quella di chiamare la funzione con nome diverso o quello di interporre uno spazio dei nomi adeguato o quella di usare trova e sostituisci di visual studio o quella di passare a c#?
    Pietro

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.