【C#基础】数据类型和参数介绍

欢迎大家指正

目录

前言

一、类型分类

1.引用类型

2.值类型

二、参数介绍

1.值参数

2.引用参数

3.输出参数

 

总结


前言

本文就介绍了C#数据类型和参数的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、类型分类

1.引用类型

存储数据的引用(内存地址)类:string Array 委托.

array=newArray; 替换引用  方法外不会受到影响
array[0]=newArray[0];通过引用修改堆中数组对象
即:数组名字为栈中引用
数组名+索引为堆

引用类型:声明在栈中,数据存储在堆中,栈中存储数据的地址

因为引用类型存储数据的引用,所以数据在堆中,栈中存储数据的内存地址

2.值类型

值分类:存储数据本身  结构: 数值类型  bool  char

值类型:声明在栈中,数据储存在栈中

因为方法执行在栈中
所以在方法声明的变量都在栈中
变量名就是内存地址的别名
因为值类型直接存储数据,所以数据存储在栈中

 //a在栈中 1在堆中
            int a = 1;

            //arr在栈中存储数组对象的引用(内存地址) 1在堆中
            int[] arr = new int[] { 1 };
            int[] arr2 = arr;
            //arr[0]=2;//修改的是堆中的数据
            arr = new int[] { 2 };//修改的是栈中存储的引用
            //是栈是堆看左面

            string s1 = "男";
            string s2 = s1;
            s1 = "女";//修改的是栈中引用
            //s1[0]='女'//堆中的文字 不能修改

            //o1在栈中  数据1 在栈中
            object o1 = 1;
            object o2 = o1;//o2得到的是  数据1的地址
            o1 = 2;//修改的是栈中o1存储的引用
            Console.WriteLine(o2);//?1 


            int num01 = 1, num02 = 1;
            bool r1 = num01 == num02;//?true 因为值类型存储的是数据,所以比较的是数据
            int[] arr01 = new int[] { 1 }, arr02 = new int[] { 1 };
            bool r2 = arr01 == arr02;//?false 因为引用类型存储的是数据的引用,所以比较的是存储的引用

二、参数介绍

1.值参数

值参数:按值传递--传递实参变量存储的内容
作用:传递信息

例子:

//值参数:按值传递--传递实参变量存储的内容
        //作用:传递信息
        private static void Fun1(int a, int[] arr)
        {
            a = 2;
        }

2.引用参数

引用参数:按引用传递--传递实参变量自身的内存地址
作用:改变数据

  Fun2(ref a2);//这样传参
//引用参数:按引用传递--传递实参变量自身的内存地址
        //作用:改变数据
        private static void Fun2(ref int a)
        {//方法内部修改引用参数  实质上就是修改实参变量
            a = 2;
        }

3.输出参数

//输出参数:按引用传递--传递实参变量自身的内存地址
//作用:返回多个结果

 Fun3(out a3);//这样传参
//输出参数:按引用传递--传递实参变量自身的内存地址
        //作用:返回多个结果
        private static void Fun3(out int a)
        {
            //区别1:方法内部必须为输出参数赋值
            //区别2:输出参数传递之前可以不赋值
            a = 2;
        }
    }

 


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了数据类型和参数的具体事项

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值