我有以下相当简单的F#函数:
let FormatValue (formatProvider : IFormatProvider) valueSuffix value =
match value > Convert.ToDecimal(valueSuffix.MinimumValueRequired) with
| true -> let normalizedValue = Convert.ToDecimal(value) / Convert.ToDecimal((Math.Pow(10., Convert.ToDouble(valueSuffix.PowerOfTen)))) in
string.Format("{0}{1}", normalizedValue.ToString(valueSuffix.Format, formatProvider), valueSuffix.Text)
| false -> ""
返回类型正确推断为string
,但是我string.Format
在true
分支中得到一个错误标记,说该类型<'a> -> string
与type不兼容ValueSuffix
。我发现这特别令人惊讶,因为可以正确推断所有其他类型,尤其是<'a>
该函数中没有其他出现。
我在做什么和/或理解错误?
问题是string.Format
在F#代码中无效。
您需要使用
System.String.Format
要么
open System
.....
String.Format
(不同之处s
在于string
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句