繁体   English   中英

如何在Silverlight 4和XAML中使用具有泛型的F#类型?

[英]How can I use an F# type with generics in Silverlight 4 and XAML?

以下代码取F#:

type Blah<'T>(objects : 'T array) as this = // whatever

当我尝试在XAML文档中使用该类型时,没有与泛型参数关联的类型,并且它很难看。 我认为编译器也抱怨:

<ns:Blah foo="bar"/>

所以,我试着像这样的类型别名(在我的Blah.fs文件的底部):

type StuffBlah = Blah<Stuff>

然后,当我在XAML文档中以相同的方式使用它时,找不到存在的类型:

<ns:StuffBlah foo="bar"/>

这是为什么? 这样做有更清洁,更优雅的方式吗? 我仍然掌握Silverlight,XAML和F#,所以任何建议都会非常感激。 谢谢。

StuffBlah版本不起作用的原因是F#语法的特定部分仅为F#项目创建类型别名而不是创建实际类型。 由于名称在IL级别上不可见为实际类型,因此Silverlight或XAML通常无法访问该名称。

解决这个问题的一种方法是将StuffBlah创建为源自Stuff<'T>的第一类类型。 根本不理想,但它会起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM