C#的函数使用 和参数修饰符 out ref params
// 函数和方法
// 函数好比对象的动作行为 在定义函数的时候,职责(作用/功能)越单一越好 满足高内聚 低耦合的开发思路
// 变量的命名规则 小驼峰
// 函数的命名规则 大驼峰 动词开头
// 函数的参数 参数可以认为是外部需要函数帮忙处理的数据 外部通过传参的形式把需要处理的参数传递给函数处理
// 函数的返回值 可以理解为外部调用某种行为(函数)后得到的一种反馈;
// 函数的声明
//public int Add(int i, int y)
//{
// return 123;
//} // 参数修饰符
// 无参数修饰符 默认 值传递 就是形参是实参的副本 形参的改变不会影响实参的值
// out 修饰符 输出的参数由被调用的方法赋值 引用传递(地址传递) 调用的时候不赋值
// void add(int i,int y,out int res)
//{
// res = i + y;
//}
// 调用的时候也要加上修饰符 out res是变量 形参的改变影响实参的值 res
//add(10,20,out int res); // ps 调用函数的时候 由out修饰的形参必须要在函数体里面赋值 否则报错
// ref 修饰符 调用者赋初值 也可以由被调用的方法重新赋值(引用传递) ps:被调用的方法未能给ref参数赋值 不会报错(out会报错)
// void sub(int i,int y,out int res = 10)
//{
// res1 = i + y; // 就算不给 ref 参数 res 赋值也不报错
//}
// sub(10,20,ref int res = 100) // ref 参数赋初值
// params params只能作为形参的最后一个参数 是一个可变的参数值
// 这个参数修饰符允许将一组可变的数量的参数作为单独逻辑参数进行传递
// 方法之能有一个params修饰符 而且必须是方法最后一个参数 // out 和 ref 的区别
// 1. out 修饰的参数必须在方法内修改 ref 可以修改也可以不修改
//2 . out 在传入参数的时候,out不用赋值, ref 必须赋值
C#的函数使用 和参数修饰符 out ref params的更多相关文章
- C#的参数修饰符out,params,ref
using System; namespace ParamsProgram { class TestParams { public static void Main(string[] args)//s ...
- 参数修饰符ref,out ,params的区别
参数修饰符ref,out ,params的区别 C#中有三个关键字-ref,out ,params,可是这三个之间的区别你都明白了吗? 那么我们就来认识一下参数修饰符ref,out ,params吧, ...
- .net 参数修饰符
参数修饰符的作用 参数修饰符 作用 无 如果一个参数没有用参数修饰符标记,则认为它将按值传递(pass by value),这意味着被调用的方法收到原始数据的一份副本 out 输出参数由被调用的方法赋 ...
- C#中方法的参数修饰符
做项目久了,有的时候真的需要静下心来认真的总结一下自己所用到的技术,而不是每天依葫芦画瓢,每天忙忙碌碌,到头来不知道自己忙了个啥,学了什么,自己到底掌握了多少知识.所以我想回顾一下C#的基础知识,把重 ...
- C#中ref和out关键字的应用以及区别(参数修饰符)
ref ref的定义 ref是reference的缩写,通过引用来传递参数的地址,ref基本上是服务于值类型的 ref的使用 //不使用 ref; void Method(int myRefInt) ...
- C#-out和ref 参数修饰符
参数修饰符: 无参数修饰符:如果一个参数没有任何参数修饰符修饰,那么认为它是值传递,意味着方法内部收到的是实参数据的副本 out:输出参数由方法内部进行赋值,(引用传递),如果方法内部没有给被out修 ...
- C#之out修饰符、ref修饰符、params修饰符的简单介绍
一.out修饰符 1.调用一个带有输出参数的方法也需要使用out 修饰符,但是作为输出变量传递的本地变量在将他们作为输出变量传递前不需要赋值(因为调用后会改变或丢失),编译器允 许 ...
- C# 基础(一) 访问修饰符、ref与out、标志枚举等等
C# 基础(一) 访问修饰符.ref与out.标志枚举等等 一.访问修饰符 在C#中的访问修饰符有:private.protected.internal.public public:公共类型,同一程序 ...
- C#原始类型扩展方法—this参数修饰符
扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型.扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用.对于用 C# 和 Visual ...
- [Reprint]C++函数前和函数后加const修饰符区别
c++中关于const的用法有很多,const既可以修饰变量,也可以函数,不同的环境下,是有不同的含义.今天来讲讲const加在函数前和函数后面的区别.比如: 01 #include<iostr ...
随机推荐
- docker 安装 centos8 mysql8 java tomcat
docker 安装 centos8 mysql8 java tomcat 一,首先在window10系统安装docker,这里就不再描述了. 二,启动docker下载安装centos8镜像 注意: ...
- 【转载】 AI与人类首次空战,5:0大胜!40亿次模拟造美国怪兽,谁与争锋? (再次证明深度强化学习路线的正确性)
原文: https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_1003478953355572 ...
- 网站的备案信息更改后是否需要及时更新 —— ICP 备案巡检
引自: https://developer.qiniu.com/kodo/8556/set-the-custom-source-domain-name ICP 备案巡检 自2022年6月8日起,执行 ...
- VUE—CLI学习
https://cli.vuejs.org/zh/guide/creating-a-project.html#vue-create 需要的自己来看吧 关于旧版本 Vue CLI 的包名称由 vue-c ...
- 推荐7款美观且功能强大的WPF UI库
前言 经常看到有小伙伴在DotNetGuide技术社区交流群里提问:WPF有什么好用或者好看的UI组件库推荐的?,今天大姚给大家分享7款开源.美观.功能强大.简单易用的WPF UI组件库. WPF介绍 ...
- 带你了解 WebAssembly 的发展、应用与开发
一.WebAssembly 是什么? "WebAssembly(缩写为 Wasm)是一种基于堆栈式虚拟机的二进制指令集.Wasm 被设计成为一种编程语言的可移植编译目标,并且可以通过将其部署 ...
- Mac 使用 Caps Lock 键切换输入法失灵问题解决
Mac 上的 Caps Lock 键对于多语言用户来说,除了切换输入大小写的作用外还承担着切换输入法的功能.正常情况下,轻按一下 Caps Lock 键是切换输入法,长按是切换输入大小写.然而有时这个 ...
- Linux 安装 TeX Live
安装新版本 cd /tmp # 下载安装压缩包 wget https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz # 解 ...
- Mac 使用远程 Ubuntu 机器进行时间备份
设置 SMB 服务 首先在 Ubuntu 中配置 SMB 服务.可以参考 Ubuntu 设置 SMB 服务. 创建 APFS 磁盘映像 我们在 Ubuntu 上创建出的 SMB 共享文件夹可以用来存放 ...
- Cache policy
Ref: Cache Replacement Policies https://linuxhint.com/configuring-zfs-cache/ https://blog.chaospixel ...