可能重复:
C#: why does the string type have a .ToString() method为什么String.ToString()?
为什么有ToString
方法String
类(VB.NET)存在吗?
String.ToString()
会不会是一个开销,如果用它像
TextBox.Text.ToString()
可能重复:
C#: why does the string type have a .ToString() method为什么String.ToString()?
为什么有ToString
方法String
类(VB.NET)存在吗?
String.ToString()
会不会是一个开销,如果用它像
TextBox.Text.ToString()
ToString
方法在Object
上找到,其中String
继承。 Object.ToString
的实现是打印typename。
public virtual string ToString() {
return this.GetType().ToString();
}
该类型String
重写此方法以返回自身。
public override string ToString() {
return this;
}
代码TextBox.Text.ToString()
有ToString
不必要的电话,但它是不可能会有这样做的任何noticable性能的影响。
所有对象都有ToString()
,这样对于任何对象:
可以调用obj.ToString()
不知道obj
可以调用obj.ToString()
,而不必担心方法并不存在(通用日志代码是你可以这样做,其中一个常见的例子)
对字符串进行调用ToString()
的开销只有一个调用一个单行函数,所以几乎肯定可以忽略不计。
ToString()
存在于从System.Object
派生的每个类中。是的,那也包括System.String
。
这可能有点多余,documentation指出它将返回完全相同的实例。所以除了方法调用之外,没有性能开销。
一切都是一个对象(或可以作为一个对象装箱)。 object
定义了方法ToString
,ergo,string有一个ToString方法,因为它是一个对象。
由于System.String
类,像任何其他类是从System.Object
类, 它从各种方法自动继承等衍生的:
public virtual bool Equals(Object obj)
public virtual int GetHashCode()
public virtual string ToString()
从而使你比较,填写表格使用对象,并打开OBJETS转化为人性化的字符串。