C#中的out参数/ref参数/params可变参数
out参数:
out关键字 通过引用来传递参数,在定义方法和调用方法的时候都必须使用out关键字
简单来讲out可以用来返回多个参数类型。
static void Main(string[] args) { string s = "123"; int result; bool b = MyTest(s,out result); } public static bool MyTest(string s, out int result) { bool isTrue; try { result = Convert.ToInt32(s);//使用out参数必须在定义方法内进行赋值 isTrue = true; } catch { isTrue = false; result = 0; } return isTrue; }
该方法返回类型为bool类型,在返回bool类型的同时也顺带返回了int类型的result变量。即,返回两种变量类型。
ref参数
ref参数在定义的方法内对其进行处理,再将结果返回,定义方法无需多余的返回类型。
ref参数和out 的的区别 out必须在定义方法内部赋值,ref必须在调用方法之前为其实参赋值。
static void Main(string[] args) { //使用ref参数来交换两个数字的值 int a = 1; int b = 2; Change(ref a, ref b); Console.WriteLine("a{0},b{1}",a,b); Console.ReadKey(); } public static void Change(ref int a, ref int b) { int temp; temp = a; a = b; b = temp; }
注意 在定义方法的时候 可以不需要返回值啦~
params可变参数
将实参列表中与可变参数数组类型一致的元素都当做数组的元素去处理。
params可变参数必须是形参的最后一个元素。
static void Main(string[] args) { //方法一:可以使用数组传参 //int[] scores = {22,11,33}; //test("张三",11,scores) //方法二:也可以直接在调用的时候使用和数组类型一致的元素 test ("张三", 100, 22, 11, 33); Console.ReadKey(); } /// <summary> /// params测试函数,计算一个同学的总成绩 /// 在params使用的时候必须将其放在最后一个参数,如下所示! /// </summary> /// <param name="name">姓名</param> /// <param name="number">学号</param> /// <param name="s">可变数组成绩</param> public static void test(string name, int number, params int[] s) { int sum = 0; for (int i = 0; i < s.Length; i++) { sum = sum + s[i]; } Console.WriteLine("{0}的学号是{1},总分为{2}", name, number, sum); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端