Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Novas TimeSpan.From*() sobrecargas que aceitam inteiros foram introduzidas no .NET 9. Essa alteração pode causar ambiguidade para o compilador F# e resultar em erros no tempo de compilação.
Comportamento anterior
Anteriormente, havia uma única sobrecarga para cada TimeSpan.From*() método, a saber:
- FromDays(Double)
- FromHours(Double)
- FromMicroseconds(Double)
- FromMilliseconds(Double)
- FromMinutes(Double)
- FromSeconds(Double)
Novo comportamento
A partir do .NET 9, foram adicionadas novas sobrecargas que aceitam argumentos inteiros. Chamar um método como TimeSpan.FromMinutes(20) no código F# resulta em um erro no tempo de compilação:
erro FS0041: não foi possível determinar uma sobrecarga exclusiva para o método 'FromMinutes' com base nas informações de tipo anteriores a esse ponto do programa. Pode ser necessária uma anotação de tipo. Tipo de argumento conhecido: intCandidates: - TimeSpan.FromMinutes(minutes: int64) : TimeSpan - TimeSpan.FromMinutes(minutes: int64, ?seconds: int64, ?milliseconds: int64, ?microseconds: int64) : TimeSpan - TimeSpan.FromMinutes(value: float) : TimeSpan
Versão introduzida
Versão Prévia 3 do .NET 9
Tipo de alteração interruptiva
Essa alteração pode afetar a compatibilidade da origem para o código F#.
Motivo da alteração
As sobrecargas pré-existentes aceitaram um Double argumento. No entanto, Double é um formato de ponto flutuante baseado em binário e, portanto, tem imprecisão natural que pode introduzir erro. Esse comportamento gerou confusão entre os usuários e bugs na superfície da API. É também uma das maneiras menos eficientes de representar esses dados. Para produzir o comportamento pretendido, foram introduzidas novas sobrecargas que permitem aos usuários passar números inteiros.
Ação recomendada
Se essa alteração afetar o código F#, especifique o tipo de argumento para que o compilador selecione a sobrecarga adequada.