在seq builder中枚举时,F#如何知道bitArray元素是bool?
在seq builder中枚举时,F#如何知道bitArray元素是bool?,f#,F#,位为bool类型。我使用ILSpy进行了检查,在生成的一个闭包中添加了一个显式强制转换 位数组仅实现普通(非泛型)IEnumerable。F#如何知道它是一个bool?,如果IEnumerable有一个项属性和一个非对象类型(突出显示我的类型),F#甚至对一个非泛型IEnumerable进行强制转换: 以下形式的表达式是序列迭代 表达方式: 对于expr1中的pat执行expr2完成 pat的类型与枚举数值上当前属性的返回类型相同。然而, 如果当前属性具有返回类型obj和收集类型ty 具有具有更
位
为bool
类型。我使用ILSpy进行了检查,在生成的一个闭包中添加了一个显式强制转换
位数组
仅实现普通(非泛型)IEnumerable
。F#如何知道它是一个bool
?,如果IEnumerable
有一个项
属性和一个非对象
类型(突出显示我的类型),F#甚至对一个非泛型IEnumerable
进行强制转换:
以下形式的表达式是序列迭代
表达方式:
对于expr1中的pat执行expr2完成
pat的类型与枚举数值上当前属性的返回类型相同。然而,
如果当前属性具有返回类型obj和收集类型ty
具有具有更具体(非对象)返回类型的项属性
ty2,改为使用类型ty2,并将动态强制转换插入到
将v.Current转换为ty2
,我们看到它确实有一个类型为bool
的Item
属性:
seq{
for bit in BitArray(10) do
yield bit
}
因此,在迭代时,F#将显式转换为
bool
。这是我的猜测,但我在规范中找不到它。谢谢找到它。
public bool this[int index] {
get {
return Get(index);
}
set {
Set(index,value);
}
}