C# 我设置为DateTime.TimeOfDay的时间跨度是否会根据DateTime更改?

C# 我设置为DateTime.TimeOfDay的时间跨度是否会根据DateTime更改?,c#,datetime,timespan,C#,Datetime,Timespan,我有dtTime类型的DateTime变量和tmSpan类型的TimeSpan。我做这些: dtTime=new DateTime(1,1,1)+tmSpan; 在此之后,如果我在dtTime上更改白天时间,则此更改将应用于tmSpan?如果没有,有什么解决办法可以应用这样的东西吗?没有tmSpan是保持某个值的自变量。dtTime中的更改不会更改tmSpan 关于问题的第二部分,我不确定您是如何计算时间跨度的,但我相信您必须重新计算时间跨度才能得到更改,例如: tmSpan = dtTime

我有
dtTime
类型的
DateTime
变量和
tmSpan
类型的
TimeSpan
。我做这些:

dtTime=new DateTime(1,1,1)+tmSpan;

在此之后,如果我在
dtTime
上更改白天时间,则此更改将应用于
tmSpan
?如果没有,有什么解决办法可以应用这样的东西吗?

没有
tmSpan
是保持某个值的自变量。
dtTime
中的更改不会更改
tmSpan

关于问题的第二部分,我不确定您是如何计算时间跨度的,但我相信您必须重新计算时间跨度才能得到更改,例如:

tmSpan = dtTime - DateTime.Now;

更改
dtTime
后,您可以执行以下操作

tmSpan = dtTime - new DateTime(1,1,1);

当你做这个手术的时候

dtTime=new DateTime(1,1,1)+tmSpan;
TimeSpan
值的部分是
dtTime
实例的一部分,对它的任何更改都不会反映在
TimeSpan
上。您仍然可以通过使用
dtTime.TimeOfDay
访问相关部分,我认为这是您正在寻找的。

s是不可变的-如果您查看可用的方法,您会发现任何涉及更改值的方法都会返回一个新的
TimeSpan
结构。