【问题标题】:Casting type and converting铸造类型和转换
【发布时间】:2013-02-17 02:47:55
【问题描述】:

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

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

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

【问题讨论】:

    标签: types casting type-conversion


    【解决方案1】:

    一种使用从intfloat 的隐式转换,另一种使用显式转换。在这种情况下,它相当于同样的事情。

    【讨论】:

    • 好的,在这种情况下,我们什么时候使用强制转换,哪种方法最适合使用,为什么?谢谢
    • method2 更具可读性,但没有一个比另一个更好。
    【解决方案2】:

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

    【讨论】:

    • 对于 .NET,尤其是 C#,不是 Visual Studio 无法弄清楚如何转换类型。类型转换显式定义为operators,编译器将根据它们是定义为implicit 还是explicit 来使用它。编译器也不会为您执行超过一个隐式步骤。
    【解决方案3】:

    第一个函数将隐式类型从int 转换为float。第二个是显式

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

    详情见:Type conversion

    【讨论】:

      猜你喜欢
      • 2011-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-26
      • 1970-01-01
      相关资源
      最近更新 更多