Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Er is een kleine wijziging geïntroduceerd die alleen van invloed is op ongeldige gecodeerde nettoladingen.
Vóór .NET 9 werd een ongeldige gecodeerde tekenreeks [0x01, 0xC2] geparseerd met BinaryReader.ReadString() een lege tekenreeks geretourneerd.
Vanaf .NET 9 BinaryReader.ReadString() wordt '\uFFFD' geretourneerd. Dit wordt REPLACEMENT CHARACTER gebruikt om een onbekend, niet-herkend of onvertegenwoordigd teken te vervangen. Deze wijziging is alleen van invloed op ongeldige nettoladingen en komt overeen met Unicode-standaarden.
Vorig gedrag
var ms = new MemoryStream(new byte[] { 0x01, 0xC2 });
using (var br = new BinaryReader(ms))
{
string s = br.ReadString();
Console.WriteLine(s == "\uFFFD"); // false
Console.WriteLine(s.Length); // 0
}
Nieuw gedrag
Vanaf .NET 9 produceert hetzelfde codefragment verschillende resultaten voor s == "\uFFFD" en s.Length, zoals wordt weergegeven in de codeopmerkingen:
var ms = new MemoryStream(new byte[] { 0x01, 0xC2 });
using (var br = new BinaryReader(ms))
{
string s = br.ReadString();
Console.WriteLine(s == "\uFFFD"); // true
Console.WriteLine(s.Length); // 1
}
Versie geïntroduceerd
.NET 9 Preview 7
Type wijziging die fouten veroorzaken
Deze wijziging is een gedragswijziging.
Reden voor wijziging
Deze wijziging is aangebracht als prestatieverbetering die van invloed is op een zeldzaam scenario.
Aanbevolen actie
Als u het vorige gedrag wilt behouden waarbij onvolledige bytereeks aan het einde van de tekenreeks is weggelaten, roept TrimEnd("\uFFFD") u het resultaat aan.