dtb là đúng về DateTime
là không thay đổi. Hãy suy nghĩ theo cách này: a DateTime
là loại giá trị, đặt cùng loại với int
hoặc double
. Các trường hợp của các cấu trúc này không thể sửa đổi được; chúng chỉ có thể được đánh giá và sao chép.
xem xét mã này:
int i = 4;
i + 2; // does not compile, but what if it did?
// would i become 6? clearly not --
// i + 2 expresses a NEW value, which can
// be copied somewhere
i = i + 2; // there we go -- that's better
Đây là tương tự như:
DateTime d = DateTime.Now;
TimeSpan t = TimeSpan.FromDays(1.0);
d.Add(t); // compiles (because AddDays is a function),
// but is really the same as i + 2 above
d = d.Add(t); // that's better
Bằng cách này, có một điều có thể giúp làm cho điều này rõ ràng hơn là nhận ra rằng những dòng trên, d = d.Add(t)
, là giống như d = d + t
. Và bạn sẽ không viết d + t
trên dòng riêng của nó, giống như bạn sẽ không viết i + 2
trên dòng riêng của nó.
Nguồn
2010-04-29 13:27:25
Cảm ơn. Giải quyết vấn đề của tôi! –
bạn có thể muốn chấp nhận câu trả lời này. –
Có.Tôi sẽ. Tôi chỉ có một hạn chế, SO không cho phép tôi làm điều đó trước 11 phút. Không biết tại sao .. –