Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F# 返回IEnumerable<;对象[]>;_F# - Fatal编程技术网

F# 返回IEnumerable<;对象[]>;

F# 返回IEnumerable<;对象[]>;,f#,F#,我在F#很新(但也很兴奋) 返回IEnumerable的属性的等效F#code是什么 public静态IEnumerable枚举工具栏 { 收到 { 返回新对象[] { “福”, “酒吧” }; } } 与F#中的C#迭代器方法等效的是seq{..}块。这是一个表达式,因此可以使用它定义方法(但也可以定义内联序列)。在块内部,您可以使用yield(对应于C#中的yield return),也可以使用yield返回给定序列的所有元素 创建数组object[]的表达式可以转换为object lite

我在F#很新(但也很兴奋)

返回
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”|]}