Types 铸造类型与吹炼

Types 铸造类型与吹炼,types,casting,type-conversion,Types,Casting,Type Conversion,这两种方法有什么区别?它们都返回相同的类型,即float,但一个使用强制转换,另一个不使用 public class Para1 { public float method1(int z) { return z; } public float method2(int z) { return (float) z; } } 一种是使用从int到float的隐式转换,另一种是使用显式转换。在本例中,它相当于相同的东

这两种方法有什么区别?它们都返回相同的类型,即
float
,但一个使用强制转换,另一个不使用

public class Para1
{
    public float method1(int z)
    {
        return z;
    }

    public float method2(int z)
    {
        return (float) z;  
    }
}

一种是使用从
int
float
的隐式转换,另一种是使用显式转换。在本例中,它相当于相同的东西。

第一个函数隐式地将int类型转换为float类型。第二个是显式的。有时需要显式转换,Visual Studio无法隐式转换复杂类型。

第一个函数执行从
int
float
的隐式类型转换。第二种是明确的

隐式类型转换由编译器完成,显式类型转换由程序员完成


有关详细信息,请参见:

好的,在这种情况下,我们什么时候使用铸造,使用哪种方法最合适,为什么?thanksmethod2更具可读性,但没有一个比另一个更好。在.NET,尤其是C#的情况下,不是Visual Studio无法理解如何转换类型。类型强制转换被显式定义为
运算符
s,编译器将根据它们是否被定义为或来使用它。编译器也不会为您执行多个隐式步骤。