返回值必须在编译时就能明确有值

作者:vkvi 来源:千一网络(原创) 日期:2010-5-5

C#,一般来说,我们声明一个变量时,同时会为其赋值。

本文要讨论的是一些搞怪的行为,也就是说声明了变量 m 后不赋值,然后看看将它作为函数返回值的情况。

private int Foo()
{
    int m;
    return m;
}

没得说,上面的代码肯定在编译时就报错:使用了未赋值的局部变量“m”。

private int Foo()
{
    int m;
    if (1 < 3)
    {
        m = 1;
    }
    return m;
}

上面的代码是正确的,因为 m = 1 是铁定会被执行的。

private int Foo()
{
    int m;
    if (1 > 3)
    {
        m = 1;
    }
    return m;
}

上面的代码会报错,因为 m = 1 是铁定不会被执行的,还等不到编译,就在编辑时 Visual Studio 就会提示代码有问题。

private int Foo()
{
    int m;
    int x = 1;
    if (x < 3)
    {
        m = 1;
    }
    return m;
}

这段代码也会报错,虽然光看这段代码来说 m = 1 是铁定会被执行,但 x 是变量,所以在编译的时候是通不过的。

你前面那位网友看了:2008 系列购买指南-SQL Server 2008 的 CPU 和用户数许可模式

▲▲▲嘿,欢迎转载传播本站原创文章,尽量保留来源噢。▲▲▲

文章评论
  • 1 楼:评论
    每个人看到的鸡蛋的样子都是不同的对不对?
标题:必填
内容:
本站永远终止与捏造“罪名”不支付广告费的某度联盟合作。
vkvi
vkvi

作者简介: vkvi,致力于 .NET Web 开发、移动开发的技术推广,在 .NET、SQL Server、Windows Server 等方面有深入研究和丰富经验,10 年间共计撰写文章 4000 余篇。 主持金融、国土、农业、电商等多个行业项目执行, 推行“技术提升生产力、人心决定成功率”的管理理论。 联系他