2012-04-25 69 views

回答

8

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性能的影响。

6

所有对象都有ToString(),这样对于任何对象:

  • 可以调用obj.ToString()不知道obj

  • 的类型3210
  • 可以调用obj.ToString(),而不必担心方法并不存在(通用日志代码是你可以这样做,其中一个常见的例子)

对字符串进行调用ToString()的开销只有一个调用一个单行函数,所以几乎肯定可以忽略不计。

2

ToString()存在于从System.Object派生的每个类中。是的,那也包括System.String

这可能有点多余,documentation指出它将返回完全相同的实例。所以除了方法调用之外,没有性能开销。

1

一切都是一个对象(或可以作为一个对象装箱)。 object定义了方法ToString,ergo,string有一个ToString方法,因为它是一个对象。

1

由于System.String类,像任何其他类是从System.Object类, 它从各种方法自动继承等衍生的:

public virtual bool Equals(Object obj) 
public virtual int GetHashCode() 
public virtual string ToString() 

从而使你比较,填写表格使用对象,并打开OBJETS转化为人性化的字符串。