Sich gegenseitig ausschließende Schnittstellen zur Kompilierzeit sicherstellen?

9

Ich möchte sicherstellen, dass zwei Interfaces niemals in derselben Klasse zur Kompilierungszeit gefunden werden, ähnlich wie AttributUsage überprüft benutzerdefinierte Attribute zur Kompilierzeit.

z.B.:

%Vor%

Ich kann das natürlich zur Laufzeit mit Reflektion machen, aber ich bin an einer Kompilierungslösung interessiert.

Ich würde mir vorstellen, dass es wahrscheinlich nicht out-of-the-box gibt - aber gibt es eine Möglichkeit, ein benutzerdefiniertes Attribut zu erstellen, das zur Kompilierungszeit ausgeführt wird, ähnlich wie AttributeUsage?

    
Iain Sproat 09.05.2011, 12:54
quelle

2 Antworten

4

Ein anderer Ansatz könnte sein, sie in abstrakte Klassen zu ändern.

    
Steve Wellens 09.05.2011, 13:34
quelle
1

Wie wäre es, ihnen zwei Methoden mit identischen Signaturen, aber unvereinbaren Rückgabetypen zu geben?

    
Ernest Friedman-Hill 09.05.2011 13:03
quelle