使用out来返回多个值
一般的方法中,一次只能有一个返回值。但是当我们需要一个方法给我们返回多个值得时候应该怎么做呢?这时候可以使用out来修饰参数。
out介绍:
static void Main(string[] args)
{
int number;
int result = Test(out number);
Console.WriteLine("number={0},result={1}",number,result);
Console.ReadKey();
}
static int Test(out int a)
{
a = ;
return a;
}
通过参数来反值:见上例代码中的Test(out int a)方法。
实现步骤:
1) 在定义方法的形参前加out,那么当调用传入实参的时候,也必须在number前加out,表明这个参数不是由实参传入形参,而是将函数的形参的赋给实参
上面代码运行结束后,结果为 number=20,result=20
2) 如果参数是以out形式传入的,那么在传入前可以不赋初值
上例中number就没有赋初值,但没有报错
3) 在方法中对于由out修饰的参数,必须赋值,并且必须在使用前赋值
第二个例子:写一个自己的int.TryParse函数并且调用。期间需要用到out
自定义方法:
static bool MyTryParse(string s,out int result )
{
result = ;
try
{
result = int.Parse(s);//将转换结果赋值给result
return true; //函数的返回值
}
catch
{
return false;
}
}
该方法在传入的字符串s可以成功转换成整数的时候,将转换结果赋值给result,同时函数的返回值为true;当不能转换成整数时候,返回false.
注意:该方法的result是用out修饰的,因此在调用之前必须赋初值。该规则参照上述步骤3
Main函数中的代码如下:
";
int re;
if (MyTryParse(s,out re))//如果返回值为true
{
Console.WriteLine("转换成功!"+re);
}
else//如果返回值为false
{
Console.WriteLine("转换失败!");
}
Console.ReadKey();
上述代码中,有一个实参s=“123”,以及由out修饰的re,其中re的“返回结果”为s的转换结果,同时函数本身返回值为bool类型
通过以上方式,就使得函数MyTryParse返回了一个bool类型和一个int类型,实现了一个函数返回多个值得目的,这就是参数反值
使用out来返回多个值的更多相关文章
- 函数返回多个值(c/c++)
当我们在处理一个数组的时候常常会碰到这样的问题:输入一个数组,和数组的一个元素,返回该元素所在行数和列数.这样就需要返回多组两个值,且组数不定.上述类型的函数在c语言程序里面存在两个问题.第一,函数只 ...
- 在JS方法中返回多个值的三种方法
在使用JS编程中,有时需要在一个方法返回两个个或两个以上的数据,用下面的几种方法都可以实现: 1 使用数组的方式,如下: <html> <head> <title> ...
- ZeroMQ接口函数之 :zmq_errno – 返回errno的值给调用此函数的线程
ZeroMQ 官方地址 :http://api.zeromq.org/4-0:zmq_errno zmq_errno(3) ØMQ Manual - ØMQ/3.2.5 Name zm ...
- h5的radio和check选中和不选中返回的checkd值
h5的radio和check选中和不选中返回的checkd值 alert($('input[type=checkbox]').attr('checked')); //存在返回checked,不存在返回 ...
- C#一个方法返回多个值
示例代码: static void Main(string[] args) { //声明 int value; string strOutValue; //调用函数 //函数的参数有两个返回的值 Re ...
- Python学习教程(learning Python)--2.3.5 Python返回多个值问题
本节主要学习Python的函数是如何同时返回多个值的问题. 在学习Python的时候惊奇的发现,Python的函数可以同时返回多个值,很有意思. #define function sum def su ...
- c,c++函数返回多个值的方法
最近遇到一个问题,需要通过一个函数返回多个值.无奈C,C++不能返回多个值.所以就想有什么方法可以解决. 网上方法比较杂乱,一般有两种替代做法: 1. 利用函数的副作用, 返回值在函数外定义, 在函数 ...
- Go语言示例-函数返回多个值
Go语言中函数可以返回多个值,这和其它编程语言有很大的不同.对于有其它语言编程经验的人来说,最大的障碍不是学习这个特性,而是很难想到去使用这个特性. 简单如交换两个数值的例子: package mai ...
- ADO.NET笔记——利用Command对象的ExecuteScalar()方法返回一个数据值
相关知识: 有些SQL操作,例如SUM,只会从数据库返回一个数据值,而不是多行数据 尽管也可以使用ExecuteReader()返回一个DataReader对象,代表该数据值,但是使用Command对 ...
- java如何从方法返回多个值
本文介绍三个方法,使java方法返回多个值. 方法1:使用集合类 方法2:使用封装对象 方法3:使用引用传递 示例代码如下: import java.util.HashMap; import java ...
随机推荐
- SVN 使用的简单整理
1. 在SVN服务器上创建存储Dir,并和个人主机建立联系. 现在SVN服务器上创建一个存储文件夹svn_storeDir.然后在个人电脑上建立一个本地文件夹local_Dir. 进入 ...
- 递归删除.DS_Store文件
删除svn文件 sudo find . -name ".DS_Store" -exec rm -r {} \; sudo find . -name ".git" ...
- bzoj2734: [HNOI2012]集合选数
Description <集合论与图论>这门课程有一道作业题,要求同学们求出{1, 2, 3, 4, 5}的所有满足以 下条件的子集:若 x 在该子集中,则 2x 和 3x 不能在该子集中 ...
- mysql的SQL_CALC_FOUND_ROWS 使用
mysql的SQL_CALC_FOUND_ROWS 使用 标签: sqlmysqltable 2007-02-27 11:40 5073人阅读 评论(0) 收藏 举报 分类: Mysql数据库技术( ...
- 零零碎碎搞了一天最后发现是ruby版本问题
查来查去查不到问题,后来在stackoverflow看到: http://stackoverflow.com/questions/22352838/ruby-gem-install-json-fail ...
- cf C. Arithmetic Progression
http://codeforces.com/contest/382/problem/C 题意:给你n个数,然后让你添加一个数使得n+1个数能形成这样的规律,a[1]-a[0]=a[2]-a[1]=a[ ...
- Struts2的注解功能
我们知道通常情况下,Struts2是通过struts.xml配置的.但是随着系统规模的加大我们需要配置的文件会比较大,虽然我们可以根据不同的系统功能将不同模块的配置文件单独书写,然后通过<inc ...
- 【POJ】1816 Wild Words
DFS+字典树.题目数据很BT.注意控制DFS深度小于等于len.当'\0'时,还需判断末尾*.另外,当遇到*时,注意讨论情况. #include <iostream> #include ...
- OpenCV 2.4.3在VS2010上的应用
一.下载和安装: 1.OpenCV 2.4.3下载:http://www.opencv.org.cn/index.php/Download#Version_2.4.3 2.下载完成后,解压 ...
- C++ Primer 随笔 Chapter 2 变量和基本类型
2.1C++内置类型 C++ 算术类型 类型 含义 最小存储空间(随机器不同而不同) bool 布尔型 --- char 字符型 8位 wchar_t 宽字符型 16位 short 短整型 16位 i ...