7

fail値が例外をスローするのはなぜですか? fine値が機能します。削除するinlineか、変換'tするfloatと機能します。

[<Struct>]
type Test<'t> =
  val x: 't
  val y: 't
  new (x,y) = { x = x; y = y }

  static member inline (+) ((x,y), a: _ Test) = 0
  static member inline (-) ((x,y), a: _ Test) = 0

let a = 1.,2.
let b = Test(1.,2.)
let fine = a - b
let fail = a + b

エラーメッセージ:

未処理の例外: System.TypeInitializationException: The type initializer for r 'AdditionDynamicImplTable 3' threw an exception. ---> System.NotSupportedExcep tion: Dynamic invocation of op_Addition involving coercions is not supported. at Microsoft.FSharp.Core.LanguagePrimitives.dyn@2445[a,b,c](Type aty, Type bt y, Unit unitVar0) at Microsoft.FSharp.Core.LanguagePrimitives.AdditionDynamicImplTable3..cctor () --- 内部例外スタック トレースの終わり --- at Microsoft.FSharp.Core.LanguagePrimitives.AdditionDynamic[T1,T2,TResult]( C:\Users\olsv\Docume nts\Visual Studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\Program の .$Program.main@() で T1 x、T2 y)。fs:line 14 続行するには何かキーを押してください。. .

4

1 に答える 1