Rumah >pembangunan bahagian belakang >C++ >Mengapa Kaedah Sambungan Saya Gagal dengan 'Kaedah sambungan mesti ditakrifkan dalam kelas statik bukan generik'?

Mengapa Kaedah Sambungan Saya Gagal dengan 'Kaedah sambungan mesti ditakrifkan dalam kelas statik bukan generik'?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-29 00:07:14546semak imbas

Why Are My Extension Methods Failing with

Kaedah Sambungan Mesti Ditakrifkan dalam Kelas Statik Bukan Generik

Apabila cuba mentakrifkan kaedah sambungan, anda mungkin menghadapi ralat: " Kaedah sambungan mesti ditakrifkan dalam kelas statik bukan generik." Ini menunjukkan bahawa kelas pembantu anda tidak memenuhi kriteria yang diperlukan untuk mencipta kaedah sambungan dalam C#.

Untuk membetulkan isu ini, semak garis panduan berikut:

  1. Bukan Generik Kelas:
    Kelas yang mengandungi kaedah sambungan mesti diisytiharkan sebagai bukan generik, bermakna ia tidak sepatutnya mempunyai parameter jenis dalam sudut kurungan (cth., kelas awam LinqHelper).
  2. Kelas Statik:
    Kaedah sambungan mesti ditakrifkan dalam kelas statik sahaja. Ini bermakna kelas harus diisytiharkan sebagai kelas statik awam LinqHelper.
  3. Kelas Bukan Bersarang:
    Kaedah sambungan tidak boleh ditakrifkan dalam kelas bersarang. Oleh itu, kelas LinqHelper hendaklah menjadi kelas tersendiri tanpa sebarang kelas yang disertakan.

Dalam kod yang anda berikan, kelas LinqHelper pada mulanya ditakrifkan sebagai kelas generik, yang melanggar keperluan #1. Mengubah suainya kepada kelas statik awam LinqHelper akan menangani ralat.

Ciri-ciri Kaedah Sambungan:

Selain keperluan kelas, kaedah sambungan itu sendiri mesti mematuhi konvensyen tertentu:

  1. Kaedah Statik:
    Kaedah lanjutan mesti diisytiharkan sebagai statik dalam kelas statik bukan generik.
  2. Kata Kunci Ini:
    Parameter pertama kaedah sambungan menggunakan kata kunci ini diikuti dengan jenis sambungan sedang digunakan, diikuti dengan nama parameter. Contohnya, awam statik IOrdedQueryable OrderBy(sumber IQueryable ini, sifat rentetan).

Atas ialah kandungan terperinci Mengapa Kaedah Sambungan Saya Gagal dengan 'Kaedah sambungan mesti ditakrifkan dalam kelas statik bukan generik'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn