.NET 9 では、params Span<T>
言語機能の破壊的変更 により、StringValuesの暗黙的な演算子とのあいまいさが生まれます。 この変更により、コンパイラは、あいまいなメソッド呼び出しが発生したときにエラー CS0121
をスローします。
以前の動作
影響を受ける API セクションで説明した API には、以前は、StringValuesの暗黙的な演算子であいまいなオーバーロードがありませんでした。 その結果、コンパイラはオーバーロードを問題なく解決します。
新しい動作
これらのあいまいなオーバーロードが発生すると、コンパイラによってエラー CS0121
がスローされ、次のエラーが発生します。
CS0121: The call is ambiguous between the following methods or properties: 'Program.Join(string, params string[])' and 'Program.Join(string, params ReadOnlySpan<string>)'
導入されたバージョン
.NET 9
破壊的変更の種類
この変更は、ソース互換性 の変更です。
変更の理由
StringValues には、string
との競合を引き起こす string[]
と params Span<T>
の暗黙的な演算子があります。
推奨されるアクション
引数を適切な型にキャストするか、名前付きパラメーターを適用して、呼び出すメソッドを明示的に指定します。
影響を受ける API
- System.String.Concat(ReadOnlySpan<String>)
- System.String.Join(Char, ReadOnlySpan<String>)
- System.String.Join(String, ReadOnlySpan<String>)
- System.IO.Path.Combine(ReadOnlySpan<String>)
- System.IO.Path.Join(ReadOnlySpan<String>)
- System.Text.StringBuilder.AppendJoin(String, ReadOnlySpan<String>)
- System.Text.StringBuilder.AppendJoin(Char, ReadOnlySpan<Object>)
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET