event aus interfece explizit implementieren



  • Hallo,

    möchte gerne ein event, dass in 2 interfaces, gleich heißt explizit implementieren. Wie sieht denn da die syntax aus?



  • Push und ein paar Zusatzinfos:

    Nochmal das Problem.
    Ich habe zwei interfaces, die ein event gleichen Namens haben.

    interface class I1
    {
       event System::EventHandler^ Changed;
    };
    
    interface class I2
    {
       event System::Threading::ThreadStart^ Changed;
    }
    

    Jetzt möchte ich beide interfaces in einer Klasse implementieren.
    Ich hätte gedacht das sollte genauso gehen wie bei Funktionen:

    ref class Impl : I1, I2
    {
       event System::EventHandler^ Changed1 = I1::Changed;
       event System::Threading::ThreadStart^ Changed2 = I2::Changed;
    }
    

    leider ist dem nicht so.



  • Das geht ja auch nur für Funktionen. Gottseidank sind Events auch bloss Funktionen:

    ref class FOOO : I1, I2
    {
    public:
    	virtual void I1_Changed_add(System::EventHandler^) = I1::Changed::add
    	{
    		// ...
    	}
    
    	virtual void I1_Changed_remove(System::EventHandler^) = I1::Changed::remove
    	{
    		// ...
    	}
    
    	virtual void I2_Changed_add(System::Threading::ThreadStart^) = I2::Changed::add
    	{
    		// ...
    	}
    
    	virtual void I2_Changed_remove(System::Threading::ThreadStart^) = I2::Changed::remove
    	{
    		// ...
    	}
    };
    

Anmelden zum Antworten