Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Właściwość FilePatternMatch.Stem została wcześniej oznaczona adnotacją jako dopuszczana do wartości null, ponieważ PatternTestResult.Stem właściwość, z którego pobiera wartość, jest dopuszczana do wartości null.
PatternTestResult Chociaż wartość może mieć wartość null, jeśli wynik nie powiedzie się, nigdy nie jest to spowodowane tym, że jest on skonstruowany tylko wtedy, FilePatternMatch gdy PatternTestResult wynik zakończy się pomyślnie.
Aby dokładnie odzwierciedlić wartość null, [MemberNotNullWhen()] atrybut jest stosowany do PatternTestResult.Stem właściwości , aby poinformować kompilator, że nie będzie mieć wartości null, jeśli zakończy się pomyślnie.
stem Ponadto argument przekazany do konstruktora FilePatternMatch nie może już mieć wartości null, a ArgumentNullException argument zostanie zgłoszony w przypadku przekazania wartości nullstem.
Wersja wprowadzona
.NET 10
Poprzednie zachowanie
Wcześniej konstruktor akceptował null jako wartość dla parametru stem, nie generując żadnych ostrzeżeń ani błędów podczas kompilacji, ani podczas wykonywania.
// Allowed in previous versions.
var match = new FilePatternMatch("path/to/file.txt", null);
Właściwość FilePatternMatch.Stem została również oznaczona adnotacją jako dopuszczana do wartości null.
Nowe zachowanie
Począwszy od platformy .NET 10, przekazanie null wartości lub prawdopodobnie o wartości null do argumentu stem w konstruktorze FilePatternMatch daje ostrzeżenie dotyczące czasu kompilacji.
null Jeśli zostanie przekazany, zostanie zwrócone środowisko uruchomienioweArgumentNullException.
Właściwość FilePatternMatch.Stem jest teraz oznaczona adnotacją, aby wskazać, że wartość nie będzie mieć wartości null, jeśli IsSuccessful ma wartość true.
// Generates compile-time warning.
var match = new FilePatternMatch("path/to/file.txt", null);
Typ zmiany przełamującej
Ta zmiana może mieć wpływ na zgodność źródła i jest zmianą behawioralną.
Przyczyna zmiany
Poprzednie adnotacje o wartości null były niedokładne, a null wartość argumentu stem była nieoczekiwana, ale nie została prawidłowo chroniona. Ta zmiana odzwierciedla oczekiwane zachowanie interfejsu API i chroni przed nieprzewidywalnym zachowaniem, jednocześnie tworząc wskazówki dotyczące czasu projektowania dotyczące użycia.
Zalecana akcja
Jeśli prawdopodobnie przekazano wartość null dla argumentu stem , przejrzyj informacje o użyciu i zaktualizuj witrynę wywołania, aby upewnić się, że stem nie można wstrzymować parametrów w elemencie jako null.
W przypadku zastosowania pomijania ostrzeżeń o wartości null podczas korzystania z FilePatternMatch.Stem właściwości można usunąć te pomijania.