1

http://blogs.msdn.com/b/dsyme/archive/2011/04/01/fsharpchart-wrapping-the-system-windows-forms-datavisualization-charting-charting-types.aspxから FSharpChart ライブラリをコンパイルしようとしました、そして次のようなコンパイルエラーが発生しました

Error   1   The value 'StackedArea100' was marked inline but its implementation makes use of an internal or private function which is not sufficiently accessible   

から

type FSharpChart =
    /// Displays multiple seriesÿof data as stacked areas. The cumulative proportion
    /// of each stacked element is always 100% of the Y
    /// axis.
    static member StackedArea100<'TY when 'TY :> IConvertible>(data: seq<'TY>) = 
        GenericChart<_>.Create<StackedArea100Chart>(oneY data)
    /// Displays multiple seriesÿof data as stacked areas. The cumulative proportion
    /// of each stacked element is always 100% of the Y
    /// axis.
    static member inline StackedArea100<'TX, 'TY when 'TX :> IConvertible and 'TY :> IConvertible>(data:seq<'TX * ('TY)>) = 
        GenericChart<_>.Create<StackedArea100Chart>(oneXYSeq data)
    /// Displays multiple seriesÿof data as stacked areas. The cumulative proportion
    /// of each stacked element is always 100% of the Y
    /// axis.

誰が何が起こっているのか教えてもらえますか? ありがとう。

4

1 に答える 1

3

StackedArea100(および他の同様のメンバー) が である必要がある理由はありませんinline。の出現箇所をすべて に置き換えることで修正できstatic member inlineますstatic member。F# チームのブログ投稿にコメントを投稿していただけると助かります (次のリリースで修正できるように)。

詳細を追加するには:

F# コンパイラがコードを好まない理由はoneXYSeq、実装で使用される関数をインライン化する必要があり、インライン化できないためです (アクセスできないヘルパー関数にアクセスする必要があるため) internalStackedArea100F# Interactive で機能する理由は、FSharpChart.fsxファイルが現在のアセンブリに読み込まれるため、internalメンバーが表示されるためです。

inlineAndyソースコードに不要なものがあるのはなぜですか? これは、最初に帽子型を使用して実験したためです。たとえば^T、任意の数値型 (および帽子型が必要inline) で動作するジェネリックメンバーを作成したためです。その後、 に切り替えることにしIConvertibleたので、inline注釈は不要になりました。

于 2011-05-26T19:40:54.280 に答える