Krav: Ændr værdien af statiske skrivebeskyttede felter, af en eller anden grund kan værdien af statiske skrivebeskyttede felter ikke ændres fra kildekoden, og ændringen kan heller ikke lykkes gennem refleksion, du kan prøve at ændre indholdet af skrivebeskyttede felter med UnsafeAccessor.
UnsafeAccessorAttributeKlasse: Giver adgang til en bestemt type utilgængeligt medlem.
Renderingerne er som følger:
Koden er som følger:
Understøtter UnsafeAccessor generiske produkter?
.NET 8 introducerede egenskaben UnsafeAccessorAttribut, som tillader adgang til usynlige medlemmer af typen (også kendt som "fast private reflection"). På grund af tidsmæssige begrænsninger blev understøttelse af generiske ikke tilføjet i .NET 8. Dog fungerer nogle meget snævre og understøttede anvendelsestilfælde med lukkede generiske typer i CoreCLR og native AOT. Disse anvendelsestilfælde skulle have været blokeret, men uventet nok blev de ikke det. Nye begrænsninger blev tilføjet i .NET 9.
I den officielle .NET 8-udgivelse er brugen af generiske typer, som ikke bevidst understøttes for UnsafeAccessorAttribut, ikke tilsigtet. I de tidlige udviklingsdage var det en potentielt understøttet brugssituation, men den blev senere udsat til .NET 9, fordi teamet stødte på kompleksitetsproblemer. Den officielle dokumentation nævner ikke generiske og giver ingen eksempler på brug af generika. Denne ændring korrigerer adfærden. Fortolkning: Det understøttes ikke officielt, men det kan bruges i .NET 8 (selvom det kan bruges, men den officielle garanti garanterer ikke korrekthed), og denne fejl er blevet rettet i .NET 9.
Henvisning:
Hyperlink-login er synlig.
Hyperlink-login er synlig.
Hyperlink-login er synlig. |