C#难点逐个击破(2):out返回参数

时间:2022-02-02 01:24:18 

传值(by value)与传址(by reference)分别为普通传递参数方式与ref声明方式,传址方式在使用前需要ref关键词修饰;out为输出返回传递,与ref相同之处较多,其重要区别是在上一节讲到的ref在被引用方法中必须被初始化;out在被引用方法中一定要有返回值。


using System;

/******************************
* Chapter:C#难点逐个击破(一)
* Author:王洪剑
* Date:2010-1-15
* Blog:http://www.51obj.cn/
* Email:walkingp@126.com
* Description:重点讲解输出参数out
* ***************************/
namespace TestOut
{
class Program
{
/// <summary>
/// out的输出值、返回值
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
static string OutResultMethod(out string name)
{
string _name = "Wang Hongjian";
name = _name;
string __name = "Zheng Zi";
return __name;
}
static void Main(string[] args)
{
string _name = "Zhang Yu";
Console.WriteLine("调用前:{0}", _name);
string result= OutResultMethod(out _name);
Console.WriteLine("调用后:{0}",_name);
Console.WriteLine("返回结果:{0}",result);
Console.ReadKey();
}
}
}


运行结果:
C#难点逐个击破(2):out返回参数
out在实际项目中使用较多,这是因为out可以返回多个值


class Program
{
/// <summary>
/// out的输出值、返回值
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
static string OutResultMethod(out string name,out string password)
{
string _name = "Wang Hongjian";
name = _name;
string _password = "123456";
password = _password;
string __name = "Zheng Zi";
return __name;
}
static void Main(string[] args)
{
string _name = "Zhang Yu";
string _password;
Console.WriteLine("调用前:{0}", _name);
string result = OutResultMethod(out _name, out _password);//多个参数传递
Console.WriteLine("调用后:{0}",_name);
Console.WriteLine("返回结果:{0}",result);
Console.ReadKey();
}
}


联想多个参数,你一定想到了使用数组吧,不错,使用数组是个很好的方式,数组本身把同一类型的参数打包“封装"为一个对象传递给方法,这样可以简化多参数方法的编写,还能实现类似重载的效果。


static void OutArrayMethod(out string[] strArr)
{
int i = 0;
string[] _strArr = new string[10];
while (i < _strArr.Length)
{
_strArr[i] = "第" + i + "个成员";
i++;
}
strArr = _strArr;
}
static void Main(string[] args)
{
string[] _strArr=new string[10];
OutArrayMethod(out _strArr);
foreach (string str in _strArr)
{
Console.WriteLine(str);
}
Console.ReadKey();
}


运行效果:
C#难点逐个击破(2):out返回参数
源码下载

标签:C#,out,返回参数
0
投稿

猜你喜欢

  • C# 反射与dynamic最佳组合示例代码

    2022-01-18 02:29:53
  • Javaweb获取表单数据的多种方式

    2022-12-25 18:13:41
  • SpringBoot自动配置实现流程详细分析

    2023-06-23 13:35:45
  • Java基础学习之方法的重载知识总结

    2023-10-27 01:45:15
  • android连接wifi时获取广播地址代码

    2022-11-20 13:08:32
  • C#实现获取鼠标句柄的方法

    2022-05-06 21:13:41
  • springdata jpa使用Example快速实现动态查询功能

    2022-12-01 21:49:08
  • Android编程之页面切换测试实例

    2022-04-03 22:13:11
  • Java微信支付之公众号支付、扫码支付实例

    2022-07-10 10:23:11
  • 详解java基于MyBatis使用示例

    2023-11-25 09:01:45
  • C#微信公众号开发之接收事件推送与消息排重的方法

    2022-01-31 08:44:46
  • Opencv光流运动物体追踪详解

    2023-06-21 11:55:31
  • Spring Cloud Alibaba Nacos 入门详解

    2022-02-23 12:29:09
  • java获取redis日志信息与动态监控信息的方法

    2021-11-19 06:24:55
  • springboot的war和jar包的使用详解

    2021-08-24 04:09:13
  • 详解java IO流之缓冲流的使用

    2023-08-08 18:33:16
  • Java并发编程之同步容器与并发容器详解

    2023-10-17 04:06:23
  • java实现的冒泡排序算法示例

    2022-12-29 20:35:03
  • 一文教你如何使用原生的Feign

    2023-01-12 22:12:58
  • Android自定义ViewGroup实现标签浮动效果

    2021-12-28 20:20:29
  • asp之家 软件编程 m.aspxhome.com