我正在尝试在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 ]).