zoukankan      html  css  js  c++  java
  • ref和out的区别

    1.ref和out的区别:

    简介:ref和out都是C#中的关键字,所实现的功能也差不多,都是指定一个参数按照引用传递。对于编译后的程序而言,他们之间没有任何区别,也就是说他们只有语法的区别

    主要区别分析:

    注:这里只介绍比较重要的区别,其他的区别通过这几条都可以分析出来

    • ref传进去的参数在调用前就初始化,而out就不必(主要记住这条其他的都可以推倒出来);
    • ref穿进去的参数在方法体(函数)内部“可以不被修改”但out必须在离开函数体前进行赋值
     1 static void Main(string[] args)
     2 {
     3        int i=3;    //对于ref这里必须进行初始化
     4        int j=4;    //对于out这里初始化了也没用,方法体了是得不到这个值的
     5        method(ref i);      //method(ref int i=3)这样是错误的
     6        method(out j)       //method(out int i=3)这样也是错误的
     7        Console.ReadKey();
     8 }
     9 
    10 static void method(ref int i)
    11 {
    12         i=20;        //在这里也可以不对i进行赋值
    13         Console.WriteLine(i);
    14 }
    15 
    16 static void method(out int i)
    17 {
    18         i=20;        //这里就必须给i进行赋值了
    19         Console.WriteLine(i);
    20 }

    下面介绍ref和out关于重载和调用前的初始值:

      • 关于重载
          • 有ref,out的关键字的方法可以与没有ref,out关键字的方法构成重载
      • 调用前初始值
          • ref在调用前实参必须初始值,否则编译器将提示使用了未赋值的局部变量;
          • out作为参数作为参数在调用前,实参可以不赋初始值

      下面通过两个案例深入进行分析:

    案例一:

     

    案例二:

          

     

                        

  • 相关阅读:
    HTB-靶机-Lazy
    HTB-靶机-Brainfuck
    HTB-靶机-October
    java编程思想-java注解
    HMAC的JAVA实现和应用
    HMACSHA1算法的JAVA实现
    常见软件安全漏洞样例代码
    [移动应用安全]移动应用安全培训PPT
    [标准性文档]WEB应用安全验证标准
    [安全测试报告]针对某厂商的一次渗透性测试
  • 原文地址:https://www.cnblogs.com/fengxuehuanlin/p/4546348.html
Copyright © 2011-2022 走看看