当前位置:  开发笔记 > 编程语言 > 正文

为什么我没有得到ref关键字的错误

如何解决《为什么我没有得到ref关键字的错误》经验,为你挑选了1个好方法。

根据定义,ref关键字必须在传递之前初始化.而out参数必须在从函数返回之前初始化.

以下是我的片段.

   public void TestRef(ref string n)
    {

    }

    public void TestOut(out string n)
    {

        n = "Hello"; //if I don't initialize, I gets compile time error. & That's right.

    }

现在在调用方法时.

string name;
TestOut(out name);//fine
TestRef(ref name) // why not throwing error.

在尝试调用TestRef()时的上述调用中,我没有初始化name参数.但根据我的理解,ref参数必须在传递之前初始化.

它构建和运行没有错误.



1> Artiom..:

TestOut保证name在方法完成执行时初始化变量

见出关键字

尽管作为out参数传递的变量在传递之前不必初始化,但是在方法返回之前需要调用方法来赋值.

和参考

传递给ref参数的参数必须在传递之前初始化.这与out参数不同,out参数在传递之前不必显式初始化.有关更多信息,请参阅.

重新排序方法调用,您将看到您期望的行为.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有