Heim > Backend-Entwicklung > C++ > Warum schlagen meine Erweiterungsmethoden mit der Meldung „Erweiterungsmethoden müssen in einer nicht generischen statischen Klasse definiert sein' fehl?

Warum schlagen meine Erweiterungsmethoden mit der Meldung „Erweiterungsmethoden müssen in einer nicht generischen statischen Klasse definiert sein' fehl?

Mary-Kate Olsen
Freigeben: 2024-12-29 00:07:14
Original
515 Leute haben es durchsucht

Why Are My Extension Methods Failing with

Erweiterungsmethoden müssen in einer nicht generischen statischen Klasse definiert werden

Beim Versuch, Erweiterungsmethoden zu definieren, kann der Fehler auftreten: „ Erweiterungsmethoden müssen in einer nicht generischen statischen Klasse definiert werden.“ Dies weist darauf hin, dass Ihre Hilfsklasse nicht die erforderlichen Kriterien zum Erstellen von Erweiterungsmethoden in C# erfüllt.

Um dieses Problem zu beheben, lesen Sie die folgenden Richtlinien:

  1. Nicht generisch Klasse:
    Die Klasse, die die Erweiterungsmethode enthält, muss als nicht generisch deklariert werden, d. h. sie sollte keine Typparameter in spitzen Klammern haben (z. B. öffentlich). Klasse LinqHelper).
  2. Statische Klasse:
    Erweiterungsmethoden dürfen nur innerhalb statischer Klassen definiert werden. Dies bedeutet, dass die Klasse als öffentliche statische Klasse LinqHelper deklariert werden sollte.
  3. Nicht verschachtelte Klasse:
    Erweiterungsmethoden können nicht innerhalb verschachtelter Klassen definiert werden. Daher sollte die LinqHelper-Klasse eine eigenständige Klasse ohne umschließende Klassen sein.

In Ihrem bereitgestellten Code wurde die LinqHelper-Klasse ursprünglich als generische Klasse definiert, was gegen Anforderung Nr. 1 verstieß. Durch Ändern in die öffentliche statische Klasse LinqHelper wird der Fehler behoben.

Eigenschaften der Erweiterungsmethode:

Zusätzlich zu den Klassenanforderungen müssen Erweiterungsmethoden selbst bestimmte Konventionen einhalten:

  1. Statische Methode:
    Erweiterungsmethoden müssen deklariert werden als statisch innerhalb der nicht generischen statischen Klasse.
  2. Dieses Schlüsselwort:
    Der erste Parameter der Erweiterungsmethode verwendet das Schlüsselwort this, gefolgt vom Typ, auf den die Erweiterung angewendet wird , gefolgt vom Namen des Parameters. Beispiel: öffentliches statisches IOrderedQueryable OrderBy(diese IQueryable-Quelle, Zeichenfolgeneigenschaft).

Das obige ist der detaillierte Inhalt vonWarum schlagen meine Erweiterungsmethoden mit der Meldung „Erweiterungsmethoden müssen in einer nicht generischen statischen Klasse definiert sein' fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage