【发布时间】:2011-09-16 22:29:50
【问题描述】:
考虑一个返回两个值的函数。我们可以这样写:
// Using out:
string MyFunction(string input, out int count)
// Using Tuple class:
Tuple<string, int> MyFunction(string input)
// Using struct:
MyStruct MyFunction(string input)
哪一个是最佳实践,为什么?
【问题讨论】:
-
字符串不是值类型。我认为您的意思是“考虑一个返回两个值的函数”。
-
@Eric:你说得对。我的意思是不可变类型。
-
上课有什么问题?
-
@lukas:没什么,但肯定不是最佳实践。这是一个轻量级值(struct,因为提到了
Eric。 -
我会说只有当你需要返回值来决定是否应该处理返回数据时才使用 out,就像在 TryParse 中一样,否则你应该总是返回一个结构化对象,如果结构化对象应该是值类型还是引用类型取决于您对数据的其他用途
标签: c# struct tuples out value-type