【发布时间】:2014-03-21 18:43:11
【问题描述】:
所以我有以下代码,它给出了 type mismatch 编译器错误,我不知道为什么:
[<Test>]
member this.TheTest() =
let tuple = (DateTime.Now, 10)
let listOfTuples = [ tuple ]
SomeType.SomeFunc(listOfTuples)
static member SomeFunc (listOfTuples: IEnumerable<Tuple<DateTime,int>>) =
Console.WriteLine("foo")
为什么类型不兼容?
更重要的是,我如何表达SomeFunc的签名以兼容调用?
【问题讨论】:
-
这基本上是同一个问题:stackoverflow.com/q/21870026/65358只是System.Tuple和元组表达式不匹配
-
不完全一样,因为该问题中的答案是关于元组中元素的数量,但是在我的问题中,我只是在询问 2 的特定长度
-
@ReedCopsey:更新问题,表达它的最终目的(与重复不匹配)
-
你试过
seq<DateTime * int>而不是IEnumerable<Tuple<DateTime,int>>吗? -
请注意,将
IEnumerable替换为seq不是必需的(它们实际上是等效的),只是因为它更短更方便。必要的部分是将Tuple<a,b>替换为a * b。