为什么类(VB.NET)ToString
中存在方法?String
String.ToString()
如果像这样使用会不会是开销
TextBox.Text.ToString()
为什么类(VB.NET)ToString
中存在方法?String
String.ToString()
如果像这样使用会不会是开销
TextBox.Text.ToString()
该ToString
方法在继承Object
自其上找到。String
的实现Object.ToString
是打印类型名。
public virtual string ToString() {
return this.GetType().ToString();
}
该类型 String
会覆盖此方法以返回自身。
public override string ToString() {
return this;
}
该代码TextBox.Text.ToString()
对 进行了不必要的调用ToString
,但这样做不太可能对性能产生任何明显的影响。
所有对象都有ToString()
,因此对于任何对象:
您可以obj.ToString()
在不知道类型的情况下调用obj
您可以调用obj.ToString()
而不必担心方法不存在(通用日志记录代码是您可能执行此操作的常见示例)
调用字符串的开销ToString()
只是调用单行函数,因此几乎可以肯定可以忽略不计。
ToString()
存在于从System.Object
. 是的,这也包括在内System.String
。
那里可能有点多余,文档指出它将返回完全相同的实例。所以除了方法调用之外没有性能开销。
一切都是对象(或可以装箱为对象)。object
定义了方法ToString
,所以,string 有一个 ToString 方法,因为它是一个对象。
因为System.String
该类与任何其他类一样是从该类派生的System.Object
,所以它会自动继承各种方法,例如:
public virtual bool Equals(Object obj)
public virtual int GetHashCode()
public virtual string ToString()
从而使您能够比较,用对象填充表格,并将对象转换为人类友好的字符串。