java params 关键字_转载------C# ref 和 out ,params关键字的用法
一、ref 的用法——引用
C#提供一种强制按引用传递参数的方法。这种方法既能用在值类型上,也能用在引用类型上。
就是同时在方法的声明和调用上使用 ref 关键字。
using System;
class Program
{
static void Main()
{
int i = 10;//必须进行初始化,不然编译会报错
fun(ref i);
Console.WriteLine("i = " + i);
Console.ReadLine();
}
static void fun(ref int i)
{
i = 100;
}
}
输出结果为 : i = 100
二、out 的用法——输出参数
在C++中,获得方法的结果要么是通过返回值,要么是通过由引用或指针传递的参数。
而在C#中,除了返回值,引用,还提供了一种比较正规的方法。就是使用 out 关键字来标记需要返回的参数。
using System;
class MyClass
{
public string TestOut(out string i)
{
i = "使用out关键字";
return "out参数";
}
}
class test
{
static void Main()
{
string x;//可以不用初始化,在方法内部赋值即可。
MyClass app = new MyClass();
Console.WriteLine(app.TestOut(out x));
Console.WriteLine(x);
Console.ReadLine();
}
}
输出结果为:
out参数
使用out关键字
三、params 的用法——不定数目的参数
C++中允许函数带有默认参数,允许不定数目的参数。但C#中不允许函数参数带有默认值。默认值这种功能,只能用函数重载来代替实现了。
但是C#允许方法带有不定数量的参数。使用params关键字,且参数必须是参数表中的最后一个参数。
using System;
class Program
{
static void Main()
{
fun("Call 1");
Console.WriteLine("\n");
fun("Call 2", 2);
Console.WriteLine("\n");
fun("Call 3", 3.2, "hey look at here", false);
Console.ReadLine();
}
static void fun(string str, params object[] args)
{
Console.WriteLine(str);
foreach (object ob in args)
{
if (ob is int)
{
Console.Write(" int : " + ob);
}
else if (ob is double)
{
Console.Write(" double : " + ob);
}
else if (ob is string)
{
Console.Write(" string : " + ob);
}
else
{
Console.Write(" other type : " + ob);
}
}
}
}
输出结果为:
java params 关键字_转载------C# ref 和 out ,params关键字的用法相关推荐
- 常见的Java审计代码函数关键字_转载:Java代码审计汇总系列(一)——SQL注入
原文链接:https://cloud.tencent.com/developer/article/1534109 一.代码审计 相比黑盒渗透的漏洞挖掘方式,代码审计具有更高的可靠性和针对性,更多的是依 ...
- java string()函数_转载java String.split()函数的用法详解
转载java String.split()函数的用法详解 如果您发现本文排版有问题,可以先点击下面的链接切换至老版进行查看!!!在java.lang包中有String.split()方法的原型是: p ...
- eclipse java工程目录_转载:Eclipse下的java工程目录
对新手来讲,一个Java工程内部的多个文件夹经常会让大家困惑.更可恶的是莫名其妙的路径问题,在Eclipse编写Java程序中,出现频率最高的错误很可能就是路径问题. 这些问题原因其实都是一个,就是关 ...
- linux java缓存失效_转载:Linux服务器Cache占用过多内存导致系统内存不足最终java应用程序崩溃解决方案...
原文链接: https://blog.csdn.net/u014740338/article/details/66975550 问题描述 Linux内存使用量超过阈值,使得Java应用程序无可用内存, ...
- java double 排序_转载:qsort细节用法,double型的排序我竟然一直用错了~~~
转载:qsort细节用法,double型的排序我竟然一直用错了--- (2010-11-26 18:16:43) 标签: 杂谈 分类: 转载 在对浮点或者double型的一定要用三目运算符,因为如果也 ...
- java求约数_[转载]Java求最大公约数与最小公倍数
(看到一份不错的总结,拿来收着) 如果数a能被数b整除,a就叫做b的倍数,b就叫做作a的约数.约数和倍数都表示一个数与另一个数的关系,不能单独存在.如只能说16是某数的倍数,2是某数的约数,而不能孤立 ...
- java数据挖掘算法_[转载]干货,基于Java和C++的数据挖掘Apriori算法实现
Apriori算法实现 Apriori算法的思想还是很容易理解的,实现起来虽然麻烦,但是还是比较容易的.下面是我使用Java语言实现的Apriori算法,实现了AprioriAlgorithm 类,包 ...
- java生成水印_[转载]java操作word生成水印
应用场景 为了保护版权或辨别文件的真伪,有时需要在生成的Word文件中动态添加水印,PageOffice组件的WaterMark类就封装了给在线编辑的Word文件添加水印这一功能,调用接口非常简单. ...
- java形状类_[转载]JAVA 设计一个形状类Shape 求周长和面积
设计一个形状类Shape,方法:求周长和求面积 形状类的子类:Rect(矩形),Circle(圆形) Rect类的子类:Square(正方形) 不同的子类会有不同的计算周长和面积的方法 创建三个不同的 ...
最新文章
- 编程小问题系列(6)——新年第一帖: 关于Silverlight在VS2010RC下无法正常运行的问题...
- 导致甲骨文裁员的原因有哪些?
- HALCON双目标定
- Elon Musk的OpenAI用VR训练机器人:解锁更多复杂动作!
- Spring教程--AOP简介
- word 中同样的字号和行距倍数,不一样的行距
- Playfab开发(一)如何调用PlayFab接口
- SQL SERVER 内存分配及常见内存问题(1)——简介
- 95-190-035-源码-window-Time Window 实现
- SSH 无法远程登录问题的处理思路
- java 反转二叉树 非递归_【刷算法】翻转二叉树的递归和非递归解法
- Log4J发日志邮件给多个接收者及标题、正文乱码问题
- ios 简书 获取通讯录信息_ios 获取本地通讯录信息
- html简单个人网页制作网站设计——腾讯游戏官网(13页) HTML+CSS+JavaScript web网页设计与开发
- 数字孪生CIM智慧城市BIM,城市cim可视化解决方案公司
- 科学计算机计算内插法,线性插值计算器
- 【PCL】—欧式聚类算法详解
- Matlab学习——求解微分方程(组)
- python实现税后工资_python税后工资计算器
- apiCloud初探
热门文章
- “烘焙”ImageNet:自蒸馏下的知识整合
- 消费级GPU、速度提升3000倍,微软FastNeRF实现200FPS高保真神经渲染
- 论文盘点:基于图卷积GNN的多目标跟踪算法解析
- 深度学习入门之PyTorch学习笔记:深度学习框架
- java io 文件路径格式_java中iofile的路径问题,确定一个未知方法所需要的文件路径...
- kettle从入门到精通_数据分析师的全景职业规划,入门、转行都先看这篇
- java是什么_Java是什么?
- linux算术表达式求值数据结构,数据结构:算数表达式求值演示
- Dubbo Admin —— Spring Cloud Alibaba 2021.1 + Nacos + Dubbo Admin参考配置
- MyBatis Plus Generator——MyBatis Plus代码生成器DEMO