gpt4 book ai didi

c# - C# 中与 DateTime 对象的字符串连接 : why is my code legal?

转载 作者:行者123 更新时间:2023-12-02 21:28:16 24 4
gpt4 key购买 nike

在我正在编写的一些 C# 代码中, DateTime对象( dt )与两个字符串连接:

string test = "This is a test " + dt + "...Why does this work?"

这不会引发编译错误并且工作正常。我的问题:为什么这是合法的?这仅特定于 DateTime对象,或覆盖 ToString() 的任何对象方法?

最佳答案

它可以编译,因为 C# 规范声明存在具有以下签名的 + 运算符的重载:

operator + (string str, object obj)

您提供了一个字符串和一个可隐式转换为对象的表达式,因此该运算符且没有其他运算符与您的参数匹配,并且可以编译。

在内部,该运算符的实现将调用string.Concat,它将使用其ToString方法将对象转换为字符串(假设它不为空),然后连接字符串作为字符串。

关于c# - C# 中与 DateTime 对象的字符串连接 : why is my code legal?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22973931/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com