次のように、doubleに暗黙的に変換されるC#クラスがある場合:
public class Parameter
{
private double _value;
public Parameter(double value) { _value = value }
public static implicit operator double(Parameter p) { return _value; }
}
F#は、私がそれをあたかもそれであるかのように使おうとするのを嫌いますfloat
:
let a = Parameter(4.0)
let b = Parameter(2.0)
let c = a * Math.Sin(b) <-- 'expected float, here Parameter'
これを行う方法はありますか(この質問/回答に基づいて、そうではないと思います)、そうでない場合、適切な回避策は何でしょうか?