1
14
你必须做很多这样的事情,才能有意义的花时间在这上面。但是,我不是来判断: 所以,你的代码是:
我想知道你用这个会不会更好
省去你的双重角色。 |
2
5
我尝试了以下方法。
我使用了以下代码。
在我的机器上,我看到了这些结果。我平均跑了3次。
当然,我使用了一个可转换的字符串。如果字符串不可转换,那么我强烈怀疑
|
3
3
使用system.diagnostics.stopwatch创建一个小的测试应用程序,并查看哪个应用程序的速度更快。尽管我会争辩说这不会有什么意义。我愿意去
|
4
1
首先,如果您真的想知道哪个更快,您应该编写一个快速测试(使用您希望处理的数据)并为每个选项计时。不知道什么
其次,除非您在 极其 代码的时间关键部分,调用它数千次启动,我怀疑它真的很重要。写一个好的,干净的代码, 然后 优化。 |
5
0
根据o是什么类型的,您可以尝试做几个不同的事情。它可能是 a)盒装双人床,您只需将其解开:
b)其他一些类型、值或引用,具有到Double的某些转换(实现IConvertible.ToDouble()),您希望使用
或 c)具有默认字符串表示形式的东西,可以解析为双精度字符串。
从某种意义上说,选项C是最长的循环方式;您将获取对象,请求其字符串表示,然后尝试解析该字符串以获得双精度值。如果您不需要这样做,这是笨拙的,并且在40000个调用的示例中,它将创建并丢弃40000个字符串… 如果您知道您的对象总是包含实现到double转换的内容,那么您可以跳过所有这些内容,选择选项b。如果您知道您的对象只是一个装箱的double,那么选择最简单的选项(a)将其取消装箱。 如果你真的不知道O会是什么的话,也许沿着这些线的某些东西会对你有用?
(注意:如果o包含实现IConvertible但无法转换为Double的内容,或者其字符串表示形式无法解析为Double,则此操作不起作用) 我没有提到相对速度,但是如果拆箱没有比转换为字符串然后解析(除非优化器非常聪明)快得多,我会很惊讶的。 在LinqPad中使用.NET秒表进行的一次快速测试显示出很大的差异。
在我的电脑上给出以下结果
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |