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;