C# 通过cast或Convert.ToSingle()将double转换为float?

C# 通过cast或Convert.ToSingle()将double转换为float?,c#,.net,casting,type-conversion,C#,.net,Casting,Type Conversion,在C语言中,我可以通过cast(float)或convert.ToSingle()将double转换为float a和b变得相等 这两种技术之间有什么区别吗?我应该选择哪一个?为什么?来自: 所以,你的答案是,在引擎盖下,它们是完全一样的 两者之间的任何偏好严格来说都是个人风格的选择。个人我会一直使用cast,因为它比较短,而且对我来说更为惯用。因为似乎没有任何理由使用ToSingle,这不是个人的选择,但客观上使用cast更好。Convert类是一种语言中立的方式,可以在.NET的不同基本类型

在C语言中,我可以通过cast
(float)
convert.ToSingle()
将double转换为float

a
b
变得相等

这两种技术之间有什么区别吗?我应该选择哪一个?为什么?

来自:

所以,你的答案是,在引擎盖下,它们是完全一样的


两者之间的任何偏好严格来说都是个人风格的选择。个人我会一直使用cast,因为它比较短,而且对我来说更为惯用。

因为似乎没有任何理由使用ToSingle,这不是个人的选择,但客观上使用cast更好。
Convert
类是一种语言中立的方式,可以在.NET的不同基本类型之间进行转换框架并非所有在.NET上运行的语言都有像C#这样的强制转换操作符。例如:在VB.NET中有CType()、CDbl()、DirectCast()和隐式转换,它们都没有与C#中的cast操作符完全相同的语义。
double x = 3.141592653589793238463;
float a = (float)x;
float b = Convert.ToSingle(x);
public static float ToSingle(double value)
{
     return (float)value;
}