Warum kann ich eine Erweiterungsmethode nicht als statische Methode aufrufen, wenn ich statischen Import verwende?

8

Hintergrund:

Ich hatte eine statische Klasse, aber die statischen Methoden waren keine Erweiterungsmethoden. Ich beschloss, die Methoden in Extension-Methoden umzuwandeln und erwartete keinen Code zu brechen, da Erweiterungsmethoden wie statische Methoden aufgerufen werden können. Der Code wurde jedoch beschädigt, als der statische Import für die statische Klasse mit den Erweiterungsmethoden verwendet wurde.

Beispiel:

Ich habe eine statische Klasse mit einer Erweiterungsmethode und einer statischen Methode:

%Vor%

Wenn ich die folgende Direktive verwende, funktioniert alles im Testprogramm:

%Vor%

Wenn ich jedoch den statischen Import mithilfe der Direktive verwende, um nur die Klasse mit der Erweiterungsmethode zu identifizieren, kann ich die Erweiterungsmethode nicht als statische Methode aufrufen:

%Vor%

Frage: Warum kann ich eine Erweiterungsmethode nicht als statische Methode aufrufen, wenn ich einen statischen Import verwende?

    
astidham2003 16.08.2016, 21:36
quelle

1 Antwort

8

Wegen des Sprachdesigns:

  

Mit static werden Erweiterungsmethoden im angegebenen Typ deklariert   verfügbar für die Suche nach Erweiterungsmethoden. Die Namen der   Erweiterungsmethoden werden nicht in den Bereich für unqualifiziert importiert   Referenz im Code.

mit der Richtlinie

    
Hamlet Hakobyan 16.08.2016, 21:42
quelle

Tags und Links