栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C# > C#教程

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

C#教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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


namespace TestOut
{
class Program
{
///
/// out的输出值、返回值
///

///
///
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();
}
}
}

运行结果:

out在实际项目中使用较多,这是因为out可以返回多个值
复制代码 代码如下:
class Program
{
///
/// out的输出值、返回值
///

///
///
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();
}

运行效果:

源码下载
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/127857.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号