FilePatternMatch.Stem har ändrats till icke-nullable

Egenskapen FilePatternMatch.Stem har tidigare kommenterats som nullbar eftersom egenskapen som den PatternTestResult.Stem hämtar sitt värde från är nullbar. PatternTestResult Även om det faktiskt kan vara null om resultatet inte lyckas beror FilePatternMatch det aldrig på att det bara konstrueras när PatternTestResult det lyckas.

För att korrekt återspegla nullabilitet tillämpas [MemberNotNullWhen()] attributet på PatternTestResult.Stem egenskapen för att meddela kompilatorn att det inte blir null om det lyckas. Dessutom stem kan argumentet som skickas till FilePatternMatch konstruktorn inte längre vara null och ett ArgumentNullException genereras om en null stem skickas in.

Version lanserad

.NET 10

Tidigare beteende

FilePatternMatch Tidigare accepterade konstruktorn null för parametern stem utan varningar eller fel vid kompilering eller körtid.

// Allowed in previous versions.
var match = new FilePatternMatch("path/to/file.txt", null);

Egenskapen FilePatternMatch.Stem kommenterades också som nullbar.

Nytt beteende

Från och med .NET 10 ger överföring av ett null eller möjligen null-värde till stem argumentet i FilePatternMatch konstruktorn en kompileringstidsvarning. Och om null skickas in kastas en körtidsexception ArgumentNullException.

Egenskapen FilePatternMatch.Stem är nu kommenterad för att indikera att värdet inte är null om IsSuccessful är true.

// Generates compile-time warning.
var match = new FilePatternMatch("path/to/file.txt", null);

Typ av brytande ändring

Den här ändringen kan påverka källkompatibiliteten och är en beteendeförändring.

Orsak till ändring

De tidigare nullability-anteckningarna var felaktiga och ett null värde för stem argumentet var oväntat men inte korrekt skyddat mot. Den här ändringen återspeglar API:ets förväntade beteende och skyddar mot oförutsägbart beteende samtidigt som designtidsvägledning kring användning genereras.

Om ett eventuellt null-värde skickades in för stem argumentet granskar du användningen och uppdaterar anropswebbplatsen för att säkerställa stem att det inte går att paTssas in som null.

Om du har tillämpat varningsundertryckningar för nullabilitet när du använder FilePatternMatch.Stem egenskapen kan du ta bort dessa undertryckningar.

Berörda API:er