Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 哪一个更好?转换和类型转换_C# - Fatal编程技术网

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")