+ Rispondi
Risultati da 1 a 6 di 6

Discussione: Dichiarazione eventi nelle interfacce

  1. #1
    Neofita della community
    reputazione complessiva: 1 1

    Messaggi
    91

    Dichiarazione eventi nelle interfacce

    Sto avendo dei problemi nella dichiarazione di un evento nell'interfaccia. Ho letto la Guida di c# ma non riesco a capire come posso dichiarare un evento in un interfaccia che abbia un valore di ritoro.

    Facendo:

    public interface VideoDriverInterface

    {

    event EventHandler FormDrag;

    }

    Riesco ad ottenere l'eveto, ma non capisco come poter ottenere un valore di ritorno.

    Grazie

  2. #2
    Collega della community L'avatar di bumm
    reputazione complessiva: 29 29

    Messaggi
    868
    Ciao,
    Ma quale valore di ritorno?
    Interfacce contengono solo delle dichiarazioni e non i metodi veri e propri. Devi creare una classe che implementa l'interfaccia:


    Codice:
    public interface IVideoDriverInterface
    {
        event EventHandler FormDrag;
    }
    
    public class ViedoDriver : IVideoDriverInterface
    {
    
    public event EventHandler FormDrag;
    
    public void StartDrag()
    {
       //logica del metodo
       //...
       //scateniamo l'evento:
       FormDrag(this, new EventArgs() );
      
    }
    
    }

    Puoi comunque creare l'EventHandler (e anche la classe personalizzata che eredita da EventArgs) personalizzato.


    Ti invito ad usare i tags [code] [/code]per racchiudere il codice.
    Ultima modifica di bumm; 28-07-2010 alle 20:40
    Premi se vuoi commentare l'intervento.

    "HeloWorld.exe" 17 errors, 31 warnings.

  3. #3
    Neofita della community
    reputazione complessiva: 1 1

    Messaggi
    91
    Grazie per la risposta, uso da poco c#, vengo da vb. Pensavo che gli eventi potessero avere valori di ritorno, tipo le funzioni.

  4. #4
    Collega della community L'avatar di Fix978
    reputazione complessiva: 48 48

    Messaggi
    987
    Blogs
    2
    Grazie per la risposta, uso da poco c#, vengo da vb. Pensavo che gli eventi potessero avere valori di ritorno, tipo le funzioni.
    Perchè in vb è possibile ?
    VB.Net: {Extension Methods} {Lambda Expressions}
    HowTo: {Windows 7 - Installare il Sistema su C e la cartella Users su D}

    è il metodo migliore per ringraziare chi ti è stato di aiuto.

  5. #5
    Neofita della community
    reputazione complessiva: 1 1

    Messaggi
    91
    con le interfacce non so perché le ho usate esclusivamente in c#, ma se dichiari un evento:

    Codice:
     
    
    Public Event MioEvento(byval RetVal as string)
    Lo puoi richiamare con RaiseEvent passandogli un valore

    Codice:
     
    
    RaiseEvent MioEvento("Ciao")

  6. #6
    Collega della community L'avatar di Fix978
    reputazione complessiva: 48 48

    Messaggi
    987
    Blogs
    2
    Bene, allora c'è un pò di confusione nella terminologia utilizzata.

    Gli Eventi NON ritornano nessun valore come invece fanno le Function, ma bensì, è possibile far passare degli oggetti con gli Eventi come si fa nelle Function (ma anche nelle Sub Routine).

    L'Evento non può essere utilizzato per l'assegnazione di un valore ad una variabile, come invece può fare una Function, e non lo può fare proprio perchè non ritorna nessun valore.

    VB.Net: {Extension Methods} {Lambda Expressions}
    HowTo: {Windows 7 - Installare il Sistema su C e la cartella Users su D}

    è il metodo migliore per ringraziare chi ti è stato di aiuto.

+ Rispondi

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi