手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#难点逐个击破(2):out返回参数
C#难点逐个击破(2):out返回参数
摘要:传值(byvalue)与传址(byreference)分别为普通传递参数方式与ref声明方式,传址方式在使用前需要ref关键词修饰;out为...

传值(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返回参数1

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返回参数2

【C#难点逐个击破(2):out返回参数】相关文章:

共享锁using范围的实现方法

c#用Treeview实现FolderBrowerDialog 和动态获取系统图标(运用了Win32 dll类库)

C#难点逐个击破(1):ref参数传递

C#常用的数据格式转换汇总

C# 鼠标穿透窗体功能的实现方法

C#难点逐个击破(5):类的访问类型

Question:基于C#连续赋值的面试题(解答)

C# 操作符之二 算数操作符

在C#中调用VBScript、javascript等脚本的实现代码

C# 设置系统日期格式的方法

精品推荐
分类导航