我正在尝试在F#中使用第三方C#库。 C#作者重载了我尝试设置的字段,以便对象本身接收该值。为速记和不完整的代码片段道歉,C#看起来像这样:

public class cls1 { public List<cls2> prop1; }
public class cls2 { private double[,] prop2;
                    public object this[int r,int c]
                      {set {this.prop2[r,c]=value;} }
                  }


要设置cls2.prop2,这在C#中有效:

cls1.prop1[0][0, 0] = 0.0

在F#中,此操作失败,并显示错误"Invalid expression on left of assignment"

cls1.prop1[0][0, 0] <- 0.0

有人可以暗示前进的方向吗?谢谢。

最佳答案

正确的F#语法为:

   cls1.prop1.[0].[0, 0] <- 0.0


从MSDN上的Arrays页:

You can access array elements by using a dot operator (.) and brackets ([ and ]).

10-07 12:04