gpt4 book ai didi

c# - 在 C# 中转换与转换的适当时间

转载 作者:可可西里 更新时间:2023-11-01 09:11:53 28 4
gpt4 key购买 nike

所以我一直认为 C# 中的转换和转换基本上是同一件事:从一种数据类型到另一种数据类型的两种不同方式。显然这是不正确的,因为它们通常会输出不同的结果。

Convert.ToInt32(1.6)     //outputs 2
(Int32)1.6 //outputs 1


(DateTime)("10/29/2013") //won't compile - cannot convert type 'string' to type 'system.date.time'
Convert.ToDateTime("10/29/2013") //outputs 10/29/2013 12:00:00 AM
  • 我的问题是两者之间的主要区别是什么?为什么它们会返回不同的结果?
  • 使用其中一个的“合适”时间是什么时候?

就我个人而言,我发现自己使用的是 Convert.To 方法,因为这对我来说似乎更干净。我知道它还会抛出 System.InvalidCastException。谁能提供一个简单的解释?

最佳答案

你可以在两种情况下使用cast:

在所有其他情况下,您应该使用 Convert 或其他自定义转换方法(例如 DateTime.Parse)。

why do they return different results?

因为执行的代码不同。 Convert.ToInt32(double value) 舍入转换结果:

int num = (int) value;
double num2 = value - num;
if ((num2 > 0.5) || ((num2 == 0.5) && ((num & 1) != 0)))
num++;

return num;

关于c# - 在 C# 中转换与转换的适当时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19663056/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com