Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
| Properti | Nilai |
|---|---|
| ID Aturan | CA2260 |
| Judul | Menerapkan antarmuka matematika generik dengan benar |
| Golongan | Penggunaan |
| Perbaikan bersifat disruptif atau non-disruptif | Non-disruptif |
| Diaktifkan secara default di .NET 10 | Sebagai peringatan |
Penyebab
Aturan ini diaktifkan saat Anda menerapkan antarmuka matematika generik yang memerlukan parameter jenis berulang sendiri dan Anda tidak meneruskan jenis itu sendiri sebagai parameter jenis.
Deskripsi aturan
Beberapa antarmuka matematika generik memperkenalkan anggota abstrak statis. Satu-satunya cara untuk mengakses anggota statis tersebut adalah melalui batasan generik yang mengimplementasikan "pola templat berulang yang aneh" (CRTP). Oleh karena itu, jenis turunan itu sendiri harus digunakan untuk parameter jenis berulang sendiri. Jika jenis mengimplementasikan antarmuka seperti itu tanpa melewati parameter jenis yang diperlukan dan CA2260 diabaikan, kode akan berhasil dikompilasi tetapi abstrak statis tidak akan dapat diakses. Dengan demikian, jenisnya tidak akan dapat digunakan. Pengkompilasi memancarkan peringatan dengan ID CS0315 pada penggunaan tersebut.
Cara memperbaiki pelanggaran
Berikan parameter jenis yang benar untuk parameter jenis berulang mandiri (TSelf) saat mengimplementasikan antarmuka tersebut.
Contoh
Pelanggaran:
using System;
// Warns: The 'IParsable<TSelf>' requires the 'TSelf' type parameter to be filled with the derived type 'MyDate'
public readonly struct MyDate : IParsable<DateOnly>
{ ... }
Perbaikan:
Teruskan MyDate jenis sebagai parameter jenis untuk IParsable<TSelf> antarmuka.
using System;
// No warning
public readonly struct MyDate : IParsable<MyDate>
{ ... }
Kapan harus menyembunyikan kesalahan
Jangan menyembunyikan peringatan dari aturan ini.