接口声明中的元组文字

时间:2019-01-15 18:32:50

标签: c# interface tuples

元组是这样!我知道我可以从具有元组的方法中返回多个值并为其命名,因此它们不必是Item1,Item2等。 我可以去var results = (result1: r1, result2: r2);

但是如何在这样的接口声明中使用元组文字呢?

public interface IFoo {
    (T1, T2) Bar();
}

尝试做(result1: T1, result2: t2) Bar();,但不起作用。有没有一种方法可以从接口方法返回命名元组?

1 个答案:

答案 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);