为什么C#允许DateObject.Date.Date.Date.Date?

Ram*_*ran -10 c#

请参阅以下代码

DateTime date = new DateTime();
var day = date.Date.Date.Date.Date.Date.Date.Date.Date.Date;
Run Code Online (Sandbox Code Playgroud)

为什么C#允许这种有趣的代码?是bug吗?

与...一样 Tostring().Tostring().Tostring().Tostring().Tostring().Tostring()

Pat*_*ens 10

a的Date属性DateTime返回一个DateTime本身,但时间设置为原始日的午夜DateTime.由于返回的日期没有特殊Date类型,但仍然是a DateTime,您可以继续调用Date它,即使返回DateTime的日期和时间在每个连续调用中也是如此.

至于ToString几条评论中提到的情况:C#中的每个对象都实现了此处ToString记录的方法.由于a 是一个对象本身并且实现了该方法,因此您也可以继续调用该对象.对于这种情况,所有连续的呼叫将代表相同的值.stringToStringstringDateTime