次の方法で共有


整数を使用する新しい TimeSpan.From*() オーバーロード

.NET 9 では、整数を受け入れる新しい TimeSpan.From*() オーバーロードが導入されました。 この変更により、F# コンパイラにあいまいさが生じ、コンパイル時エラーが発生する可能性があります。

以前の動作

以前は、次のように、TimeSpan.From*() メソッドごとに 1 つのオーバーロードがありました。

新しい動作

.NET 9 以降、整数引数を使用する新しいオーバーロードが追加されました。 F# コードで TimeSpan.FromMinutes(20) などのメソッドを呼び出すと、コンパイル時エラーが発生します。

error FS0041: メソッド "FromMinutes" に固有のオーバーロードは、このプログラム ポイント以前は、型情報に基づいて決定できませんでした。 型注釈が必要な場合があります。 既知の引数型: intCandidates: - TimeSpan.FromMinutes(minutes: int64) : TimeSpan - TimeSpan.FromMinutes(minutes: int64, ?seconds: int64, ?milliseconds: int64, ?microseconds: int64) : TimeSpan - TimeSpan.FromMinutes(value: float) : TimeSpan

導入されたバージョン

.NET 9 プレビュー 3

破壊的変更の種類

この変更は F# コードのソースの互換性に影響を与える可能性があります。

変更理由

既存のオーバーロードは、Double 引数を受け取りました。 しかし、Double はバイナリベースの浮動小数点形式であるため、エラーが発生する可能性のある自然な不正確さがあります。 この動作により、API サーフェイスでユーザーの混乱とバグが発生しました。 これは、このデータを表す効率の低い方法の 1 つでもあります。 意図した動作を生成するため、ユーザーが整数を渡せるようにする新しいオーバーロードが導入されました。

この変更が F# コードに影響する場合は、コンパイラが適切なオーバーロードを選択するように引数の型を指定します。

影響を受ける API