F# 返回IEnumerable<;对象[]>;
我在F#很新(但也很兴奋) 返回F# 返回IEnumerable<;对象[]>;,f#,F#,我在F#很新(但也很兴奋) 返回IEnumerable的属性的等效F#code是什么 public静态IEnumerable枚举工具栏 { 收到 { 返回新对象[] { “福”, “酒吧” }; } } 与F#中的C#迭代器方法等效的是seq{..}块。这是一个表达式,因此可以使用它定义方法(但也可以定义内联序列)。在块内部,您可以使用yield(对应于C#中的yield return),也可以使用yield返回给定序列的所有元素 创建数组object[]的表达式可以转换为object lite
IEnumerable
的属性的等效F#code是什么
public静态IEnumerable枚举工具栏
{
收到
{
返回新对象[]
{
“福”,
“酒吧”
};
}
}
与F#中的C#迭代器方法等效的是seq{..}
块。这是一个表达式,因此可以使用它定义方法(但也可以定义内联序列)。在块内部,您可以使用yield
(对应于C#中的yield return
),也可以使用yield
返回给定序列的所有元素
创建数组object[]
的表达式可以转换为object literal[|…|]
,但我们需要确保值作为对象返回。这可以通过添加类型注释或使用box
函数添加显式装箱来实现:
您的C代码看起来像一个只读属性,可以使用let
将其转换为一个值声明:
let EnumerateFooBar = seq { yield [| box "foo"; box "bar" |] }
使用类型批注的替代方法:
let EnumerateFooBar : seq<obj[]> = seq { yield [| "foo"; "bar" |] }
let-EnumerateFooBar:seq=seq{yield[|“foo”;“bar”|]}
如果您想将其定义为某个对象的属性:
type FooBarEnumerator() =
member this.EnumerateFooBar : seq<obj[]> = seq { yield [| "foo"; "bar" |] }
type fooberEnumerator()=
成员this.EnumerateFooBar:seq=seq{yield[|“foo”;“bar”|]}
与F#中的C#迭代器方法等效的是seq{..}
块。这是一个表达式,因此可以使用它定义方法(但也可以定义内联序列)。在块内部,您可以使用yield
(对应于C#中的yield return
),也可以使用yield
返回给定序列的所有元素
创建数组object[]
的表达式可以转换为object literal[|…|]
,但我们需要确保值作为对象返回。这可以通过添加类型注释或使用box
函数添加显式装箱来实现:
您的C代码看起来像一个只读属性,可以使用let
将其转换为一个值声明:
let EnumerateFooBar = seq { yield [| box "foo"; box "bar" |] }
使用类型批注的替代方法:
let EnumerateFooBar : seq<obj[]> = seq { yield [| "foo"; "bar" |] }
let-EnumerateFooBar:seq=seq{yield[|“foo”;“bar”|]}
如果您想将其定义为某个对象的属性:
type FooBarEnumerator() =
member this.EnumerateFooBar : seq<obj[]> = seq { yield [| "foo"; "bar" |] }
type fooberEnumerator()=
成员this.EnumerateFooBar:seq=seq{yield[|“foo”;“bar”|]}