F# 3.0 CLIMutable特性

如果你曾经用一些设计器支持使用过XAML,那么你将额外地受益于设计器所带来的好处。我已经花费了数周,不用实现任何功能和设计器支持的工作。这里描述了一个案例。默认的构造函数是关键!不幸地是,F#里面的record类型没有一个默认的构造函数,这使绑定变得困难。

 

现在我们有CTlMutable来解决这个问题。CTlMutable截屏如下:

如果你定义下面的F#代码:

[< CLIMutable > ]

typeR =

    {X: int; Y:int }

typeR2 =

    {X: int; Y:int }

 

那么在C#代码里面你能做:

varx =new R();

varx2 =new R(0, 2);

vary =new R2(0, 2);

//var y2 = new R2(); //does not compile

 

类型R有默认的构造函数,然而,没用CTlMutable修饰的R2没有默认的构造函数。

 

希望这个3.0功能使你的UI工作更容易点儿。

 

原文链接:http://apollo13cn.blogspot.com/2012/03/f-30-climutable-attribute.html

 

posted @ 2012-05-24 11:53  tryfsharp  阅读(233)  评论(0编辑  收藏  举报