我目前的代码是
object[] method()
{
returning new object[] {"",12,} like this ?
}
Run Code Online (Sandbox Code Playgroud)
Tuple是一个更好的选择吗?
请建议一个很好的选择..
该课程经常使用,请求频繁.
UPDATE
返回值在不同方法中有所不同.我有所有方法返回的值从2到10为最大值.
逻辑是我将sp [MS SQL存储过程]逻辑转换为等效的mongoDb(所有数据都存在)
因此对于sp,一个方法应该以sp返回的形式返回.在sp中,使用OUT参数并且它也返回一些整数值.
在替换即时通讯中使用
object[] method(out int returnValue)
{
}
Run Code Online (Sandbox Code Playgroud)
returnValue用于错误代码,object []用作sp的out参数的返回类型.
什么是最好的方法呢?
Pet*_*tai 10
您还有第3个选项:简单类型的结果类或具有属性的结构.如果您返回的不超过3件物品,则元组没问题.
在C#中返回一个对象数组是一种不好的做法 - 尝试尽可能地键入.作为一般的经验法则,您正在为您的开发人员创建代码(以便他/她可以轻松地使用/修改它)而不是计算机.让框架进行优化.
我只是创建一个新的class并返回它的实例。由于正确的属性名称而不是Item1, ,这为您提供了类型安全性和可读性Item2。
而不是数组返回IEnumerable<>- 这样您就可以更改方法的实现(例如通过引入yield return)而不会破坏消费者。
请记住
Tuple<string,string>对于任何可能对和之间的性能差异感兴趣的人
class MyClass
{
public string Field1 { get; set; }
public string Field2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我用DotNetPearls的修改测试对其进行了测量,结果是:
项目数 = 1 000 000
8.27 ns -- 分配元组
7.28 ns -- 分配对象
2.46 ns -- 将元组作为参数传递
2.28 ns -- 将对象作为参数传递
2.16 ns -- 返回元组
2.31 ns -- 返回对象
3.12 ns -- 从列表中加载元组
3.12 ns -- 从列表中加载对象
Tuple因此,至少在这种情况下使用没有性能原因
| 归档时间: |
|
| 查看次数: |
3166 次 |
| 最近记录: |