Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A .NET 6 előzetes egy új funkciót kínál, amelyben a static felület tagjai megjelölhetők abstract. Ez a funkció az ECMA 335 specifikáció számos módosításával lehetővé teszi a korábban illegálisnak ítélt köztes nyelv (IL) metaadat-mintáit. További információ: dotnet/runtime#49558.
Régi viselkedés
Ha egy statikus felületet abstract jelöltek meg:
- A C#-fordító cs0112 hibát generált.
- Az eszközök és más fordítók illegális IL-metaadatokat generáltak.
Új viselkedés
A .NET 6-tól kezdve a statikus illesztőtagok megjelölhetők és abstract sikeresen lefordíthatók. Emellett a létrehozott IL-metaadat-minták joginak minősülnek az ECMA 335 specifikáció változásai miatt.
Az interfésztagok implementálását static abstract az interfészt megvalósító típusok biztosítják.
Megjegyzés:
A .NET 6 esetében engedélyeznie kell a projekt előzetes verziójú funkcióit, hogy egy felülettagot megjelölhessen.static abstract
Mivel ez egy újonnan legális IL-minta, előfordulhat, hogy a meglévő eszközök helytelenül dolgozzák fel a kapcsolódó metaadatokat, és váratlan viselkedést váltanak ki. Valószínű, hogy az eszközök találkoznak az új metaadat-mintával, mivel a static abstract tagokkal rendelkező felületek most már megjelennek a primitív típusokon, például System.Int32.
Bevezetett verzió
.NET 6
A kompatibilitástörő változás típusa
Ez a változás befolyásolhatja a bináris kompatibilitást.
A változás oka
Ez a módosítás azért lett bevezetve, mert nem volt mód arra, hogy elvonja a statikus tagokat, és általánosított kódot írjon, amely az adott statikus tagokat meghatározó típusokra vonatkozik. Ez különösen problémás volt az olyan tagtípusok esetében, amelyek csak statikus formában léteznek, például operátorok esetében.
Javasolt művelet
Frissítse azokat az eszközöket, amelyek .NET bináris fájlokat vagy C# forráskódot használnak, hogy figyelembe vegyék az interfésztagok új fogalmát static abstract , beleértve azokat is, amelyek most már a .NET primitív típusain léteznek.
Érintett API-k
Nincs adat.