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?
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.
Tags und Links c# static extension-methods using