Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从性能的角度来看,哪个更正确_C# - Fatal编程技术网

C# 从性能的角度来看,哪个更正确

C# 从性能的角度来看,哪个更正确,c#,C#,我有一个问题 哪个更有效?或者执行时间更短,为什么 session["var"].ToString() 或 取决于此会话变量的对象类型,如果您知道它是字符串,则选项2最好。ToString()是一个方法,(string)是强制转换(显式)。我的铸造总是很快 引用类型之间的强制转换操作不会更改运行时 基础对象的类型;它只更改值的类型 用作该对象的引用的。 资料来源: .ToString()可以从任何对象调用。此方法从对象类继承,可以重载 (string)是一个强制转换,它不是一个函数调用。当确

我有一个问题

哪个更有效?或者执行时间更短,为什么

session["var"].ToString()


取决于此会话变量的对象类型,如果您知道它是字符串,则选项2最好。

ToString()是一个方法,(string)是强制转换(显式)。我的铸造总是很快

引用类型之间的强制转换操作不会更改运行时 基础对象的类型;它只更改值的类型 用作该对象的引用的。
资料来源:

.ToString()可以从任何对象调用。此方法从对象类继承,可以重载


(string)是一个强制转换,它不是一个函数调用。当确定对象已经在字符串中时,应该使用它。当它无法转换为包含null的字符串时,它将抛出异常。后者性能更好,只需将值转换为其他类型。前者涉及一个方法调用和/或一个新对象创建。

这两个调用执行非常不同的操作(除非您知道如何确保值是字符串)。所以问哪一个更快并不完全正确

由于两种操作都需要调用一个函数,所以有两种方法都有参数,哪种方法更快。正确的方法是原型和测量

请注意,从会话访问数据可能不是您的主要性能BotleCheck(特别是在SQL或其他进程外会话状态下)。

ToString()在对象为null时引发异常。因此,在object.ToString()的情况下,如果对象为null,则会引发NullReferenceException。Convert.ToString()返回字符串。如果对象为null,则返回空字符串。(字符串)如果为null,则强制转换指定对象。所以如果

MyObject o = (string)NullObject;
但当您使用o访问任何属性时,它将引发NullReferenceException


Convert.ToString在内部使用value.ToString。转换为字符串更便宜,因为这不需要外部函数调用,只需要内部类型检查。将对象强制转换为字符串的速度至少是调用Object.toString()的速度的两倍。

什么类型的会话[“var”]?而且我以前从未见过
(string)var
,从来没有。也许我只是错过了?谢谢你的回复。。。。但是你能告诉我为什么第二种选择是最好的吗?是显式转换还是隐式转换?
MyObject o = (string)NullObject;