• C#之值类型与引用类型--out参数--ref参数-"=="、Equals和ReferenceEquals之间的区别


    一、值类型和引用类型

    1.值类型

      (1)值类型的大小是固定的

      (2)值类型都派生自ValueType

      (3)值类型不能继承,只能实现接口

    2.值类型:int、char、double、float、long、short、byte、bool、enum、struct、decimal

    3.栈中内存使用

     4.引用类型

      (1)引用类型派生自object类

      (2)引用类型可以继承(类之间可以继承)

    5.引用类型:string、数组、类、接口、委托、自定义类

    6.值类型和引用类型总结

      (1)值类型赋值的时候是将栈中的数据拷贝了一个副本

      (2)引用类型赋值的时候是将栈中的地址拷贝了一个副本

    二、out参数和ref参数

    1.out参数

      (1)out参数在使用之前必须在方法里面为out参数赋值

      (2)out参数无法获取传递进来的变量中的值,只能为传递进来的变量赋值

      (3)out参数在方法执行完毕之前,必须赋值

    static void Main(string[] args)
            {
                string m;
                string get_result=Test(out m);
                Console.WriteLine(get_result);
    
                Console.ReadKey();
            }
    
            static string Test(out string msg)
            {
                msg = "你好呀";
                return msg;
            }

    在一般的传递参数中,是给方法传进去一个值;而out参数和普通参数相反,传参之前不能进行赋值。

    2.ref参数

     3.总结:

      (1)ref表示是”按引用传递“,传递的是栈本身的地址。

      (2)值传递传递的是栈中的内容,是将栈中的内容拷贝了一个副本。 

    三、==、Equals和ReferenceEquals的区别

    TODO:

  • 相关阅读:
    保存ADO的记录集为XML文件
    [C++] Undefined reference to vtable
    Csdn博客的一个bug
    深入解析ATL(第二版ATL8.0)(1.111.13节)
    不同操作系统下记事本的换行符号
    dom4j学习总结(一)
    关于firefox的copy/paste的问题
    php URL编码解码函数
    php连接MySQL数据库的一些问题
    使用 jQuery progressBar 做文件上传的进度条指示
  • 原文地址:https://www.cnblogs.com/fengjiqiang123/p/11928535.html
Copyright © 2020-2023  润新知