out的作用
創(chuàng)新互聯(lián)服務項目包括浦東網(wǎng)站建設、浦東網(wǎng)站制作、浦東網(wǎng)頁制作以及浦東網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網(wǎng)行業(yè)的解決方案,浦東網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到浦東省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!
用于一個函數(shù)傳遞多個返回值,這些返回值的類型可以不相同,也可以創(chuàng)建結構體或者一個類,或者使用靜態(tài)變量達到類似的效果。
out的用法
out的使用需要在函數(shù)的定義,和函數(shù)的使用時使用out關鍵字
1.在書寫函數(shù)時,如寫方法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
這樣樣就返回了三個值,分別是函數(shù)返回值(int),value1(int)和value2(double)。
2.在函數(shù)的使用時
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.函數(shù)定義了out的參數(shù),在函數(shù)使用時,必須傳入相應的參數(shù),并寫上關鍵字out
2.在out函數(shù)中,必須要給out參數(shù)賦值后才能結束函數(shù)
舉例
使用一個函數(shù)求數(shù)組的最小值、最大值、平均值。
最小值用函數(shù)的return傳遞,最大值和平均值用out傳遞。
using System;
namespace ConsoleApp3
{
class Program
{
static void Main(string[] args)
{
int[] ary = { 1, 2, 3, 4, 7 };
int Min, Max;//存儲函數(shù)返回的數(shù)組最小值和最大值
double Average;//存儲函數(shù)返回的平均值
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;//表示數(shù)組的最大和最小值
double average1 = 0;//表示數(shù)組的平均數(shù)
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;
}
}
}
這個要看接口文檔或者你調(diào)用的那個函數(shù)的說明,正規(guī)程序在頭文件里都會有說明的。
如果沒有資料,按常規(guī)推斷的話,需要傳指針進去的,一般都是輸出參數(shù)out,直接傳值進去的,肯定都是輸入?yún)?shù)in。(看好了,傳指針進去的,也有可能是輸入?yún)?shù),所以最好看函數(shù)說明文檔)
在C語言中,ref相當于c語言的引用參數(shù),實參和形參一起變。out多用于輸出參數(shù),就是在return之前必須給out標示的參數(shù)賦值。這就是out和ref的區(qū)別。
out 不需要初始化
ref需要初化,我看到的書上就是這么寫的
就是說你調(diào)用那個函數(shù)時,對應于out修飾的參數(shù),不需要初始化,面ref需要如下例子:
void example(out int x); //聲明
void dddd(ref int y); //聲明
int main()
{
int m=0, n;
example(n); //這個參數(shù)不需要初始化
dddd(m); //一定得初始化
}
函數(shù)功能:該函數(shù)可以獲得與系統(tǒng)中輸入點的當前集相對應的鍵盤布局句柄。該函數(shù)將句柄拷貝到指定的緩沖區(qū)中。
函數(shù)原型:UINT
GetKeyboardLayoutList(int
nBuff,HKL
FAR
*IpList)
參數(shù):
nBuff:指定緩沖區(qū)中可以存放的最大句柄數(shù)目。
Iplist:緩沖區(qū)指針,緩沖區(qū)中存放著鍵盤布局句柄數(shù)組。
返回值:若函數(shù)調(diào)用成功,則返回值為拷貝到緩沖區(qū)的鍵盤布局句柄的數(shù)目,或者,若nBuff為0,則運回值為接受所有當前鍵盤布局的緩沖區(qū)中的大小(以數(shù)組成員為單位)。若函數(shù)調(diào)用失敗,返回值為0。若想獲得更多錯誤信息,可調(diào)用GetLastError函數(shù)。