2012-04-25 12 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轉化爲人性化的字符串。