重写 ToString 和在 C# 中使用隐式/显式转换运算符有什么区别?



在C#中,这有什么区别:

public override string ToString()
{
    return "Person: " + Name;
}

而这个:

public static implicit/explicit operator string(Person person)
{
    return "Person: " + Name;
}
语义

有些不同。

转换运算符说"转换为字符串(或其他)类型":

C# 使程序员能够声明对类或结构的转换,以便类或结构可以与其他类或结构或基本类型相互转换。

Object.ToString应该回来

表示当前对象的字符串。

意思是"给我(通常是人类)对象的可读文本表示"。

(我并不是说这样的语义总是被尊重的。 例如,有时您可能会看到ToStringFromString被用作转换函数。

相关内容

最新更新