与DataGridColumn.Visibility匹配的F#模式
问题描述:
我遇到了使用模式匹配来确定列的可见性属性的情况。 System.Windows.Visibility
有两个字段,Visibility.Visible
和Visibility.Collapsed
。可以enyone告诉我为什么下面的代码:与DataGridColumn.Visibility匹配的F#模式
let colItem = myDataGrid.Columns.Item 1
chkBox.IsChecked <-
match colItem.Visibility with
| Visibility.Visible -> new Nullable<bool>(true)
| Visibility.Collapsed -> new Nullable<bool>(false)
生成follwing警告:
不完整的图案此 表达式匹配。例如,价值 '2uy'可能表明模式没有涵盖 的情况。
答
在理论上类型能见度的值可以比其它可见或折叠的,因为达网络枚举允许下面的积分类型作为枚举类型的值的任何值(以允许之类的枚举或运算)的东西。
对,.NET枚举是整数类型的薄外观,并且可以具有任何基础整数类型的值。 – Brian 2010-06-03 17:33:12
这是正确的。例如,'(LanguagePrimitives.EnumOfValue 2uy:Visibility)'会给你一个'Visibility'类型的值,它既不是'Visible'也不''Collapsed',就像编译器警告的那样。 – kvb 2010-06-03 19:06:18