C#-02 传入参数的一些用法2
C#_02 参数应用2
一、关于 “ref” 局部变量和 “ref” 返回
- 在前面已经明白了 ref 关键词传递一个对象引用给方法调用,这样在方法中对对象修改过后返回后依然可见,而 ref 返回却相反,它允许你将引用发送到方法外,然后在调用的上下文使用这一引用。而与之相关的是ref局部变量,先从ref局部变量开学习
- 下面先从 ref 局部变量开始:
- 它允许一个变量是另一个变量的别名
- 对任意一个变量的修改都会反映到另一个上
- 创建别名语法: ref int y = ref x;(在这里y是x的别名)
- 代码示例:
Class Program
{
Static Void Main()
{
int x = 5;
ref int y = ref x;
Console.WriteLine($” x : {x} , y : {y} ”);
y=7;
Console.WriteLine($” x : {x} , y : {y} ”);
X=9;
Console.WriteLine($” x : {x} , y : {y} ”);
//输出结果为
//5 5
//7 7
//9 9
}
}
- 但是别名功能并不是 ref 局部变量的一个常见用途,实际上它经常与 ref 返回一起使用,ref 返回提供了一种方法使得方法返回值返回变量引用而非变量值
- 具体用法:会使用两次 ref 关键词
- 一次是位于方法返回类型声明之前
- 二次是在 return 关键词之后,被返回对象之前
- 代码示例:
Class Simple
{
private int x = 50;
public ref int RefGet()
{
return ref x;
}
public void Display()
{
Console.WriteLine($”Value : {x}”);
}
}
Class Program
{
Static Void Main()
{
Simple s = new Simple();
s.Display();
ref int q=s.RefGet();
q+=2;
s.Display();
//运行结果为 value:50
// value:52
}
}
- 这里另一个比较经典的例子就是返回 MAX ,在返回时想要返回最大值的引用而非最大值的值,这里就可以使用 ref
- 代码示例(缩略)
Class Max
{
Public ref int GetMax(ref int x,ref int y)
{
return ref x>ref y;
}
}
Class Program
{
Static void Main()
{
int x=20,y=10;
Max D = new Max();
ref int max = D.GetMax(ref x,ref y);
max++;
Console.WriteLine($”max : {max}”);
}
}
二、命名参数
C#允许我们使用命名参数,只要显式指定名字,就可以按任意顺序在方法调用中列出参数
格式:(这里 a ,b ,c 是三个形参)
- c.Cale(c:2,a:5,b:4);
代码示例:
Class Program
{
public int Cale(int a, int b, int c)
{
return a+c*b;
}
static void Main()
{
int r1=Cale(c:4,a:2,b:4);
int r2=Cale(a:2,c:4,b:4);
int r3=Cale(2,c:4,b:4);
}
}
三、可选参数:(没什么可说的)
- 在方法中提供默认值
- 示例:
public int Cale(int a,int b,int c=3)
{
return a+b*c;
}
Static void Main()
{
int a=2,b=4,c=4;
Console.WriteLine($” {Cale(a,b)} {Cale(a,b,c)} ”);
}
C#-02 传入参数的一些用法2的更多相关文章
- C#-01 关于C#中传入参数的一些用法
实验环境 实验所处环境位于vs2019环境中 学习内容 一.最基础的参数传入:值参数 对于这种传入,和其他的c,c++编程语言参数传入一样,没有太大差别,在这里给如下例子: 虽然这里并没有进行传参但是 ...
- 《OOC》笔记(3)——C语言变长参数va_list的用法
<OOC>笔记(3)——C语言变长参数va_list的用法 C语言中赫赫有名的printf函数,能够接受的参数数目不固定,这就是变长参数.C#里也有params这个关键字用来实现变长参数. ...
- C语言的本质(16)——函数接口的传入参数与传出参数
如果函数接口有指针参数,既可以把指针所指向的数据传给函数使用(称为传入参数),也可以由函数填充指针所指的内存空间,传回给调用者使用(称为传出参数),例如strcpy的函数原型为 char *strcp ...
- sqlserver 针对预处理sql传入参数的处理方式
在编写sql中,经常需要对sql进行预处理,动态拼接字符串,那么要获取在这预处理之后返回的的某个值并且赋值,传入参数的语法 USE [OA] GO /****** Object: StoredProc ...
- MyBatis的parameterType传入参数类型
在mybatis映射接口的配置中,有select,insert,update,delete等元素都提到了parameterType的用法,parameterType为输入参数,在配置的时候,配置相应的 ...
- MYSQL DATE_FORMAT参数列表及用法
MYSQL DATE_FORMAT参数列表及用法 主要涉及用法 DATE_SUB(DATE, INTERVAL EXPR TYPE) DATE_FORMAT(DATE,FORMAT) REPLACE( ...
- springboot 之 根据传入参数进行多数据源动态切换
背景:最近有一个需求是根据app传来的请求参数,根据行政部门编码请求不同地区的数据,之前写的多数据源都是固定某个方法调用指定的dao然后查询不同的数据库,但是这次是需要根据前端传入参数进行动态区分数据 ...
- MyBatis传入参数为集合、数组SQL写法
参考:http://blog.csdn.net/small____fish/article/details/8029030 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合 ...
- WF4.0 工作流设计器 传入参数问题记录?
在本公司的流程设计器 ,如果流程中使用了传入参数,应先定义 参数,然后再拖动节点,才能正确提交,否则出错,原因未查明,只观察到现象.
随机推荐
- Redis 5 种基本数据结构(String、List、Hash、Set、Sorted Set)详解 | JavaGuide
首发于:Redis 5 种基本数据结构详解 - JavaGuide 相关文章:Redis常见面试题总结(上) . Redis 5 种基本数据结构(String.List.Hash.Set.Sorted ...
- python 异常捕捉与异常处理
简介 在实际开发中,为了防止异常界面直接被用户看到,往往我们会采用捕捉异常的方式来进一步处理异常. 异常捕捉 如下代码由于下标越界会导致异常 data = range(10) print(data[1 ...
- ASP.NET Web 应用 Docker踩坑历程——续
ASP.NET Web 应用 Docker踩坑历程发表后,也开始使用Docker了,然而发布的过程比较痛苦,经常发生下图的事情: 据说是nuget包还原时发生错误 百度了半天也找不到解决的方法,而发生 ...
- Bika LIMS 开源LIMS集—— SENAITE的使用(检测流程)
客户管理 登记客户信息,包括地址.合同报告邮寄地址.账单邮寄地址.付款银行账号等. 产品批次管理 例如某乳品公司生产处一批产品,该批产品送往实验室检测,实验室登记该批产品批号,如对该批产品做多次检测, ...
- 一文搞懂什么是kubernetes Service
1.什么是Service? 在kubernets中,Pod是应用程序的载体,Pod你可以想象成就是容器,为动态的一组Pod提供一个固定的访问入口,它是以一种叫ClusterIP地址来进行标识,而Clu ...
- 羽夏看Linux内核——门相关入门知识
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.如有好的建议,欢迎反馈.码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作.如想转载,请把我的转载信息附在文章后面,并 ...
- 论语音社交视频直播平台与 Apache DolphinScheduler 的适配度有多高
在 Apache DolphinScheduler& Apache ShenYu(Incubating) Meetup 上,YY 直播 软件工程师 袁丙泽 为我们分享了<YY直播基于Ap ...
- NC20471 [ZJOI2007]棋盘制作
题目链接 题目 题目描述 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名. 据说国际象棋起源于易经的思想,棋盘是一个8*8大小的黑白相间的方阵,对应八八六十四卦,黑白对 ...
- dentry的引用计数不对导致的crash
[17528853.189372] python invoked oom-killer: gfp_mask=0xd0, order=0, oom_score_adj=-998[17528853.189 ...
- CPU性能优化干货总结
一.背景 部门成立专项组,对数智平台和站务系统做性能优化,其中目标之一为降低服务端硬件成本,即在32G内存.CPU银牌的配置下,能支撑1万+发客量.要达到此目标,需通过压力测试并配合监控系统,以QPS ...