c#中形参是引用类型但依然是值传递!!
来源:互联网 发布:淘宝网打不开商品强细 编辑:程序博客网 时间:2024/06/06 05:44
在做leetcode的时候,发现的c#中的问题,标记一下:
Given nums = [3,2,2,3], val = 3,Your function should return length = 2, with the first two elements of nums being 2.就是说去掉数组中与给定值相同的元素,并且返回心数组长度,由于本人脑子不好使,用了很笨的办法。
public int RemoveElement(int[] nums, int val) { int[] temp = null; int i = 0, j = 0, count = 0; while (i < nums.Length) { if (nums[i] != val) count++; i++; }//求temp的长度,如果没有这一步,则代码报nullreference的错。 temp = new int[count]; i = 0; while (i < nums.Length) { if (nums[i] != val) { temp[j] = nums[i]; j++; } i++; } nums = temp; return temp.Length; }最后发现打印传入的nums函数的时候竟然nums没有发生任何改变。。
后来才知道,就算int[]是引用类型,如果不使用关键字ref 或者 out(适用场景不同)全是作为值传递的,在方法内部会拷贝一个副本,方法结束之后,销毁这个副本。
阅读全文
0 0
- c#中形参是引用类型但依然是值传递!!
- 关于C#值类型,引用类型,值传递,引用传递
- 关于C#值类型,引用类型,值传递,引用传递
- String类型传递是值传递,char[]类型传递是引用传递
- C#中string和Object类型是引用传递
- c#值类型与引用类型,可空类型,值传递与引用传递
- C#中string是值传递还是引用传递?
- C#参数传递(值类型、引用类型)
- [转帖]关于C#值类型,引用类型,值传递,引用传递
- 【转】关于C#值类型,引用类型,值传递,引用传递
- C#中 类和结构 值类型和引用类型以及 值传递和引用传递
- 关于C#的值类型和引用类型,值传递和引用传递的区别
- C#中的DateTime是值类型还是引用类型
- C#值传递引用类型数据的问题
- 为什么 Java 只有值传递,但 C# 既有值传递,又有引用传递,这种语言设计有哪些好处?
- 为什么 Java 只有值传递,但 C# 既有值传递,又有引用传递,这种语言设计有哪些好处?
- C#基础原理拾遗——引用类型的值传递和引用传递
- Java中,String类型和包装类型作为参数传递时,是属于值传递还是引用传递呢?
- [15]_STM32内部结构和SOC的两大巨头分工
- 树结构
- 7.Python
- WEB监听器(三大域对象的创建销毁监听总结)
- git使用小手册
- c#中形参是引用类型但依然是值传递!!
- minSdkVersion、targetSdkVersion、compileSdkVersion三者的作用解析
- ORB_SLAM2系列之二:ORB_SLAM2跑单目SLAM
- 647. Palindromic Substrings
- C语言的动态分配函数
- HDOJ--2188(巴什博奕)
- scrapy安装
- Unity3D
- java开发微信端获取code和opendId,access_token,用户列表