2

可能重复:
C#:为什么字符串类型有 .ToString() 方法

为什么类(VB.NET)ToString中存在方法?String

String.ToString()

如果像这样使用会不会是开销

TextBox.Text.ToString()
4

5 回答 5

8

ToString方法在继承Object自其上找到。String的实现Object.ToString是打印类型名。

public virtual string ToString() {
    return this.GetType().ToString();
} 

该类型 String会覆盖此方法以返回自身。

public override string ToString() {
    return this;
} 

该代码TextBox.Text.ToString()对 进行了不必要的调用ToString,但这样做不太可能对性能产生任何明显的影响。

于 2012-04-25T08:49:39.847 回答
6

所有对象都有ToString(),因此对于任何对象:

  • 您可以obj.ToString()在不知道类型的情况下调用obj

  • 您可以调用obj.ToString()而不必担心方法不存在(通用日志记录代码是您可能执行此操作的常见示例)

调用字符串的开销ToString()只是调用单行函数,因此几乎可以肯定可以忽略不计。

于 2012-04-25T08:48:59.663 回答
2

ToString()存在于从System.Object. 是的,这也包括在内System.String

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

于 2012-04-25T08:49:15.413 回答
1

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

于 2012-04-25T08:49:41.293 回答
1

因为System.String该类与任何其他类一样是从该类派生的System.Object,所以它会自动继承各种方法,例如:

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

从而使您能够比较,用对象填充表格,并将对象转换为人类友好的字符串。

于 2012-04-25T08:53:38.950 回答