【Unity|C#】基础篇(4)——函数参数类型(值参/ref/out/params)
【学习资料】
《C#图解教程》(第5章):https://www.cnblogs.com/moonache/p/7687551.html
电子书下载:https://pan.baidu.com/s/1mhOmBG0
【内容】
- 函数参数类型
- 值参数:值类型、引用类型
- 引用参数(ref)
- 引用类型 作为 值参数与引用参数(ref) 的区别
- 输出参数(out)
- 参数数组(params)
【笔记】
- 参数类型

- 值参(形参改变不影响实参)
- 在栈中 为形参 开辟空间
- 将 实参的值 传给 形参(值类型传递值,引用类型传递指向堆数据的引用)

- 引用参数(ref)(形参改变,实参也跟随改变)
- 不会 为形参 在栈上 分配内存
- 相当于:给实参起个别名,实参和形参是同一个变量

- 引用类型作为 值参 与 ref参数 的区别
- 作为值参:形参指向新的数据时,实参指向的数据不变

- 作为ref参数:形参指向新的数据时,实参也指向新的数据(因为形参相当于是实参的别名)

- 输出参数(out)(与ref一样,但是在函数结束前必须赋值)

- 参数数组(params):参数个数不固定
- 在堆中 开辟 参数数组,将 实参 依次 赋值到 参数数组 中
- 函数执行完后,释放参数数组内存

void Show(params int[] inVals)
{
for (int i = ; i < inVals.Length; ++i)
Debug.Log(inVals[i]);
}
void Start()
{
Show();
Show(, );
Show(, , );
}
【Unity|C#】基础篇(4)——函数参数类型(值参/ref/out/params)的更多相关文章
- Python 带参数的装饰器 [2] 函数参数类型检查
在Python中,不知道函数参数类型是一个很正常的事情,特别是在一个大项目里.我见过有些项目里,每一个函数体的前十几行都在检查参数类型,这实在是太麻烦了.而且一旦参数有改动,这部分也需要改动.下面我们 ...
- c++函数参数类型-引用、指针、值
c++函数参数类型-引用.指针.值 https://www.cnblogs.com/lidabo/archive/2012/05/30/2525837.html
- python函数参数类型及其顺序
根据inspect模块官文文档中关于函数参数类型的相关说明,python函数参数共有五种类型,按顺序分别为:POSITIONAL_ONLY.POSITIONAL_OR_KEYWORD.VAR_POSI ...
- Python 函数参数类型大全(非常全!!!)
Python 函数参数类型大全(非常全!!!) 1.在python编写程序里面具有函数文档,它的主要作用是为了让别人可以更好的理解你的函数,所以这是一个好习惯,访问函数文档的方式是: MyFuncti ...
- 参数修饰符ref,out ,params的区别
参数修饰符ref,out ,params的区别 C#中有三个关键字-ref,out ,params,可是这三个之间的区别你都明白了吗? 那么我们就来认识一下参数修饰符ref,out ,params吧, ...
- C++基础--引用做函数参数
引用,简单粗暴的解释叫做别名,简单粗暴的例子就是,我是熊叫大雄,但是很多时候别人不叫我熊叫大雄,会叫我大雄,粤语地区朋友爱叫我阿雄,有人叫我雄,所以,熊叫大雄这个变量的值是我,雄.大雄.阿雄是熊叫大雄 ...
- C++学习基础五之函数参数——形参
一.理论部分 C++中函数形参主要分为两类,如图1所示, 图1 总结: 一.当函数参数为非引用形参时,传进函数体内的是实参的拷贝,(注意,对于基本类型而言,拷贝的是实参的值,对于指针而言拷贝的是实参的 ...
- PowerShell控制台输出符号+函数参数类型指定+文本内容读取
There are several ways: Write-Host: Write directly to the console, not included in function/cmdlet o ...
- pycahrm使用docstrings来指定变量类型、返回值类型、函数参数类型
py里面不需要显示声明类型,这和java c这些静态语言不同,虽然python这样做少了一些代码和写代码的困难度,但还是非常多的弊端的,运行速度 代码安全, 这些都是语言本身带来的本的弊端,这些没办法 ...
随机推荐
- HTML基础标签图片文本超链接列表表格介绍
1.HTML基础标签图片常见代码形式<img src="图片路径地址" alt="属性名" title="占位符">常见的图片格 ...
- Python学习课程零基础学Python
python学习课程,零基础Python初学者应该怎么去学习Python语言编程?python学习路线这里了解一下吧.想python学习课程?学习路线网免费下载海量python教程,上班族也能在家自学 ...
- 【一起刷LeetCode】整数反转
前言&絮叨 别人都忙着参加年会晒奖品,我却忙着写代码.每逢年底都要安排几个紧急项目,我什么时候能摆脱这种宿命. 在忙也不能忘记刷LeetCode,毛毛向前冲!!! 题目描述 给出一个 32 位 ...
- Python小白
.IDLE软件为内建于CPython的集成开发环境(IDE),包括编辑器,编译或解释器,调试器 .py(后缀保存) 2.行一,单行注释 多行,””” ‘’’ 之后,内建 ...
- sum用法
自带的sum 用法: 但是2个列表或者2个元组放在里面就报错了.这时候就要用到 numpy 里面的sum 用法了 import numpy as np list1 = [1,2,3,4,5] list ...
- Balanced Lineup POJ - 3264
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> us ...
- python报错bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml.
qpython运行 原代码: soup = BeautifulSoup(r.text,'lxml') 报错:bs4.FeatureNotFound: Couldn't find a tree b ...
- 咸鱼的ACM之路:动态规划(DP)学习记录
按挑战程序设计竞赛介绍的顺序记录一遍学习DP的过程. 1. 01背包问题 问题如下: 有N个物品,每个物品(N[i])都有一定的体积(W[i]),和一定的价值(V[i]) 现在给定一个背包,背包的容量 ...
- JAVA鼠标监听器
package howework_07; public class Example9_10 { public static void main(String args[]) { WindowMouse ...
- LeetCode 160. 相交链表 (找出两个链表的公共结点)
题目链接:https://leetcode-cn.com/problems/intersection-of-two-linked-lists/ 编写一个程序,找到两个单链表相交的起始节点. 如下面的两 ...