out的作用
创新互联服务项目包括浦东网站建设、浦东网站制作、浦东网页制作以及浦东网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,浦东网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到浦东省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
用于一个函数传递多个返回值,这些返回值的类型可以不相同,也可以创建结构体或者一个类,或者使用静态变量达到类似的效果。
out的用法
out的使用需要在函数的定义,和函数的使用时使用out关键字
1.在书写函数时,如写方法test
int test(int arg,out int value1,out double value2){
value1 = 1;
value2 = 2.2;
return arg;
}
1
2
3
4
5
1
2
3
4
5
这样样就返回了三个值,分别是函数返回值(int),value1(int)和value2(double)。
2.在函数的使用时
static void Main(string[] args)
{
int a,b;
double c;
a=test(1,out b,out c);
//结果a=1,b=1,c=2.2
}
1
2
3
4
5
6
7
1
2
3
4
5
6
7
使用out注意的地方
1.函数定义了out的参数,在函数使用时,必须传入相应的参数,并写上关键字out
2.在out函数中,必须要给out参数赋值后才能结束函数
举例
使用一个函数求数组的最小值、最大值、平均值。
最小值用函数的return传递,最大值和平均值用out传递。
using System;
namespace ConsoleApp3
{
class Program
{
static void Main(string[] args)
{
int[] ary = { 1, 2, 3, 4, 7 };
int Min, Max;//存储函数返回的数组最小值和最大值
double Average;//存储函数返回的平均值
Min = getAryMin(ary, out Max, out Average);
Console.WriteLine(Min);
Console.WriteLine(Max);
Console.WriteLine(Average);
}
static int getAryMin(int[] ary, out int max, out double average)
{
int max1 = 0, min1 = 0;//表示数组的最大和最小值
double average1 = 0;//表示数组的平均数
if (ary.Length 0)
{
max1 = ary[0];
min1 = max1;
}
foreach (int i in ary)
{
average1 += i;
if (i min1)
min1 = i;
if (i max1)
max1 = i;
}
if (ary.Length 0)
average1 /= ary.Length;
average = average1;
max = max1;
return min1;
}
}
}
这个要看接口文档或者你调用的那个函数的说明,正规程序在头文件里都会有说明的。
如果没有资料,按常规推断的话,需要传指针进去的,一般都是输出参数out,直接传值进去的,肯定都是输入参数in。(看好了,传指针进去的,也有可能是输入参数,所以最好看函数说明文档)
在C语言中,ref相当于c语言的引用参数,实参和形参一起变。out多用于输出参数,就是在return之前必须给out标示的参数赋值。这就是out和ref的区别。
out 不需要初始化
ref需要初化,我看到的书上就是这么写的
就是说你调用那个函数时,对应于out修饰的参数,不需要初始化,面ref需要如下例子:
void example(out int x); //声明
void dddd(ref int y); //声明
int main()
{
int m=0, n;
example(n); //这个参数不需要初始化
dddd(m); //一定得初始化
}
函数功能:该函数可以获得与系统中输入点的当前集相对应的键盘布局句柄。该函数将句柄拷贝到指定的缓冲区中。
函数原型:UINT
GetKeyboardLayoutList(int
nBuff,HKL
FAR
*IpList)
参数:
nBuff:指定缓冲区中可以存放的最大句柄数目。
Iplist:缓冲区指针,缓冲区中存放着键盘布局句柄数组。
返回值:若函数调用成功,则返回值为拷贝到缓冲区的键盘布局句柄的数目,或者,若nBuff为0,则运回值为接受所有当前键盘布局的缓冲区中的大小(以数组成员为单位)。若函数调用失败,返回值为0。若想获得更多错误信息,可调用GetLastError函数。