元组是这样!我知道我可以从具有元组的方法中返回多个值并为其命名,因此它们不必是Item1,Item2等。
我可以去var results = (result1: r1, result2: r2);
但是如何在这样的接口声明中使用元组文字呢?
public interface IFoo {
(T1, T2) Bar();
}
尝试做(result1: T1, result2: t2) Bar();
,但不起作用。有没有一种方法可以从接口方法返回命名元组?
答案 0 :(得分:2)
您使用命名元组作为方法返回类型的语法不正确:
public interface IFoo {
(T1 result1, T2 result2) Bar();
}
注意:这是因为您的返回类型定义了类型和名称,而分配元组文字的名称则定义了值和名称。
// Method return syntax. Type & Name
public (bool success, T payload) TryGetPayload<T>() { }
// Literal assignment syntax. Name & Value
var result = (success: true, payload: t);