C# 哪一个更好?转换和类型转换
我想知道对于以下场景,哪种方式更好更快C# 哪一个更好?转换和类型转换,c#,C#,我想知道对于以下场景,哪种方式更好更快 string dateStart = ((DateTime)dtRow["StartDate"]).ToShortDateString(); 或 如果数据表的StartDate列中存储的值类型已经是DateTime,则第一个值比第二个值快。否则我们无法比较它们,因为第一个崩溃。Cast无疑更好,因为只有在底层数据是DateTime类型或兼容的情况下,Cast才是合适的方法 第二种方法是将DateTime转换为字符串,然后再转换回DateTime,这是毫无
string dateStart = ((DateTime)dtRow["StartDate"]).ToShortDateString();
或
如果数据表的
StartDate
列中存储的值类型已经是DateTime
,则第一个值比第二个值快。否则我们无法比较它们,因为第一个崩溃。Cast无疑更好,因为只有在底层数据是DateTime类型或兼容的情况下,Cast才是合适的方法
第二种方法是将DateTime转换为字符串,然后再转换回DateTime,这是毫无意义的。您的测量结果显示了什么?这是应用程序的瓶颈吗?如果您知道
dtRow[“StartDate”]
是一个DateTime
,为什么要将其转换为字符串?我会这么做1)只是因为2)很糟糕。@abatishchev:为了防止将来出现糟糕的问题,这个链接仍然是必须阅读的。@abatishchev我很可能同意。我们争论的愚蠢的事情…;-)
string dateStart = DateTime.Parse(dtRow["StartDate"].ToString()).ToString("dd/MM/yyyy")