Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何修复此F#3.0报价错误_F#_F# 3.0 - Fatal编程技术网

如何修复此F#3.0报价错误

如何修复此F#3.0报价错误,f#,f#-3.0,F#,F# 3.0,我下载了一个Github项目,在VS 2012中打开它时,自动进行了升级。我得到了一个我不理解的错误。它与报价有关 这是我复制粘贴在下面的文件: 错误是“引用可能不涉及对捕获的局部变量的赋值或获取其地址” 违规代码为该键和值: this.Control.DetailsName, this.Control.details值, namespace FSharp.Windows.Sample 打开System.Windows.Data 开放系统.绘图 open System.Windows.Forms

我下载了一个Github项目,在VS 2012中打开它时,自动进行了升级。我得到了一个我不理解的错误。它与报价有关

这是我复制粘贴在下面的文件:

错误是“引用可能不涉及对捕获的局部变量的赋值或获取其地址”

违规代码为该键和值:

this.Control.DetailsName,

this.Control.details值,

namespace FSharp.Windows.Sample
打开System.Windows.Data
开放系统.绘图
open System.Windows.Forms.DataVisualization.Charting
open System.Collections.ObjectModel
打开FSharp.Windows
打开FSharp.Windows.ui元素
[]
键入StockPricesChartModel()=
继承模型()
抽象StocksInfo:get、set的ObservableCollection
抽象SelectedStock:StockInfoModel,带get,set
键入StockPricesChartView(控件),如下所示=
继承部分视图(控件)
做
let area=新图表区域()
area.AxisX.MajorGrid.LineColor
)
this.Control.Details.SetBindings(
itemsSource=,
//////////////////违规代码///////////////////
columnBindings=fun stockProperty->
[
这个.Control.DetailsName,
此.Control.details值,
]
)
键入StockPricesChartController()=
继承控制器()
覆盖此。InitModel模型=
model.StocksInfo
异步的
异步的{
让!result=Mvc.startWindow(StockPickerView(),StockPickerController())
结果|>Option.iter(有趣的新项目->
model.StocksInfo.Add newItem
model.SelectedStock它在F#3.0中的突破性变化
正如Leaf Garland所指出的,这并不是对你问题的直接回答,但看看升级到VS 2012的代码,它正在打破F#3.0的变化

正如Leaf Garland所指出的,这不是对你问题的直接回答,但看看升级到VS 2012的代码

它没有回答你的问题,但Dmitry的代码第14章将其全部升级到VS 2012。它没有回答你的问题,但Dmitry的代码第14章将其全部升级到VS 2012。
namespace FSharp.Windows.Sample

open System.Windows.Data
open System.Drawing
open System.Windows.Forms.DataVisualization.Charting
open System.Collections.ObjectModel

open FSharp.Windows
open FSharp.Windows.UIElements

[<AbstractClass>]
type StockPricesChartModel() = 
    inherit Model()

    abstract StocksInfo : ObservableCollection<StockInfoModel> with get, set
    abstract SelectedStock : StockInfoModel with get, set

type StockPricesChartView(control) as this =
    inherit PartialView<unit, StockPricesChartModel, StockPricesChartControl>(control)

    do 
        let area = new ChartArea() 
        area.AxisX.MajorGrid.LineColor <- Color.LightGray
        area.AxisY.MajorGrid.LineColor <- Color.LightGray        
        this.Control.StockPricesChart.ChartAreas.Add area
        let series = 
            new Series(
                ChartType = SeriesChartType.Column, 
                Palette = ChartColorPalette.EarthTones, 
                XValueMember = "Symbol", 
                YValueMembers = "LastPrice")
        this.Control.StockPricesChart.Series.Add series

    override this.EventStreams = 
        [
            this.Control.AddStock.Click |> Observable.mapTo()
        ]

    override this.SetBindings model = 
        this.Control.StockPricesChart.DataSource <- model.StocksInfo
        model.StocksInfo.CollectionChanged.Add(fun _ -> this.Control.StockPricesChart.DataBind())

        this.Control.Symbol.SetBindings(
            itemsSource = <@ model.StocksInfo @>, 
            selectedItem = <@ model.SelectedStock @>,
            displayMember = <@ fun m -> m.Symbol @> 
        )

        this.Control.Details.SetBindings(
            itemsSource = <@ model.SelectedStock.Details @>, 
//////////////////            OFFENDING CODE    ///////////////////
            columnBindings = fun stockProperty ->
                [
                    this.Control.DetailsName, <@@ stockProperty.Key @@>
                    this.Control.DetailsValue, <@@ stockProperty.Value @@>
                ]
        )

type StockPricesChartController() = 
    inherit Controller<unit, StockPricesChartModel>()

    override this.InitModel model = 
        model.StocksInfo <- ObservableCollection()

    override this.Dispatcher = fun() -> 
        Async <| fun model ->
            async {
                let! result = Mvc.startWindow(StockPickerView(), StockPickerController())  
                result |> Option.iter(fun newItem -> 
                    model.StocksInfo.Add newItem
                    model.SelectedStock <- newItem
                )
            }