Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
| Vlastnost | Hodnota |
|---|---|
| ID pravidla | CA2260 |
| Název | Správná implementace obecných matematických rozhraní |
| Kategorie | Využití |
| Oprava způsobující chybu nebo chybu způsobující chybu | Nenarušující |
| Povoleno ve výchozím nastavení v .NET 10 | Jako upozornění |
Příčina
Toto pravidlo se aktivuje při implementaci obecného matematického rozhraní, které vyžaduje parametr typu sebeopakující se, a nepředáváte samotný typ jako parametr typu.
Popis pravidla
Některá obecná matematická rozhraní představují statické abstraktní členy. Jediný způsob, jak získat přístup k těmto statickým členům, je prostřednictvím obecného omezení, které implementuje "podivně opakující se vzor šablony" (CRTP). Odvozený typ musí být proto použit pro parametr typu sebeopakující se sám. Pokud typ implementuje takové rozhraní bez předání požadovaného parametru typu a CA2260 se ignoruje, kód se úspěšně zkompiluje, ale statický abstrakt nebude přístupný. Typ proto nebude použitelný. Kompilátor vygeneruje upozornění s ID CS0315 o tomto použití.
Jak opravit porušení
Při implementaci těchto rozhraní předejte správný parametr typu pro parametr samoopakujícího typu (TSelf).
Příklad
Porušení:
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>
{ ... }
Oprava:
MyDate Předejte typ jako parametr typu pro IParsable<TSelf> rozhraní.
using System;
// No warning
public readonly struct MyDate : IParsable<MyDate>
{ ... }
Kdy potlačit chyby
Nepotlačujte upozornění na toto pravidlo.