返回值:
返回值類型:
任意的數(shù)據(jù)類型或者void
void表示該方法無返回值
方法有無返回值取決于方法的調(diào)用者是否需要返回值
參數(shù):
參數(shù)分為兩種:
形式參數(shù):在編寫方法的時(shí)候 預(yù)定義的參數(shù)
實(shí)際參數(shù):在實(shí)際調(diào)用(使用)方法的時(shí)候 傳入方法的參數(shù)
參數(shù)的類型:
形式參數(shù):任意的數(shù)據(jù)類型 由方法編寫者在預(yù)定義時(shí)限定
實(shí)際參數(shù):任意的數(shù)據(jù)類型(和形式參數(shù)匹配)在方法的調(diào)用者中定義賦值
聲明和傳參:
形式參數(shù):
public static void Area(int radius)//int radius即為形式參數(shù)
{
....
}
實(shí)際參數(shù):
public static void Main (string[] args)
{
???? int r = 1;
???? Area(r); ?// r即為實(shí)際參數(shù)
}
// 傳參的實(shí)質(zhì):用實(shí)際參數(shù)為形式參數(shù)賦值
int radius = r;
參數(shù)數(shù)組坟漱,通過關(guān)鍵字params定義參數(shù)數(shù)組会傲。調(diào)用時(shí)可以傳入個(gè)數(shù)不同的實(shí)參置鼻,具備很好的靈活性吼句。
參數(shù)數(shù)組必須為參數(shù)列表的最后一個(gè)參數(shù)
參數(shù)列表之前可以設(shè)置其他的參數(shù)
示例:
//參數(shù)數(shù)組枝缔,關(guān)鍵字params
static void Add(params int[] p)
{
????for(int i=0;i
數(shù)據(jù)類型按照大的分類:值類型和引用類型
值類型:基本數(shù)據(jù)類型、枚舉和結(jié)構(gòu)
引用類型:數(shù)組、類(String)、接口等
區(qū)別:
值類型相當(dāng)于單獨(dú)的一個(gè)箱子 直接操作箱子內(nèi)的內(nèi)容
引用類型相當(dāng)于管理存儲(chǔ)箱子的管理員
從以下幾個(gè)方面來了解它們的具體區(qū)別:
1.聲明時(shí)
值類型:新產(chǎn)生一個(gè)箱子 等待存儲(chǔ)
引用類型:產(chǎn)生一個(gè)箱子管理員 等待一個(gè)箱子
2.被賦值
值類型:將新的內(nèi)容直接放在箱子內(nèi)
引用類型:和=右邊的管理員一起管理同一個(gè)箱子
out 和 ref
函數(shù)參數(shù)默認(rèn)是值傳遞的便斥,也就是“復(fù)制一份”
out和ref傳遞的都是地址引用而不是值
1.形參和實(shí)參指向同一地址
2.始終保證形參和實(shí)參指向同一地址
區(qū)別:
out只出不進(jìn)
ref又進(jìn)又出
方法定義時(shí)的選擇:
1.若方法只有一個(gè)返回值 選擇使用返回值類型
例:
public static int ReturnInt()
{
? return 1;
}
2.如果返回值多于1個(gè) 選擇使用out
public static void ReturnInt(out int a,out int b)
{
//a、b賦初值
// a威始、b參與運(yùn)算
}
調(diào)用時(shí): int c;int d;? ReturnInt(out c,out d);
3.如果需要直接將結(jié)果返回到某一個(gè)變量上 使用ref
public static void ChangeString(ref String s)
{
s = "000"+s;
}
調(diào)用時(shí): String ss = "1";? ChangeString(ref ss);
參數(shù)傳遞需要明白的要點(diǎn):
形參的修正對(duì)實(shí)參的影響程度
參數(shù)傳遞的方式:
形式參數(shù) = 實(shí)際參數(shù)
參數(shù)的傳遞大致分為三類:
默認(rèn)傳參(無修飾傳參)值傳參
ref修飾傳遞參數(shù) ?地址傳參
out修飾傳遞參數(shù) 出參
傳參規(guī)則:
根據(jù)形式參數(shù)類型的不同 對(duì)實(shí)際參數(shù)的影響程度也不相同
A:String枢纠、結(jié)構(gòu)體、基本數(shù)據(jù)類型(整型黎棠、浮點(diǎn)晋渺、字符、布爾)脓斩、枚舉
B:類木西、數(shù)組
默認(rèn)傳參(無修飾傳參)值傳參:
A:不影響實(shí)際參數(shù)
B:影響實(shí)際參數(shù)
ref修飾傳遞參數(shù) ?地址傳參:
A:影響實(shí)際參數(shù)
B:影響實(shí)際參數(shù)
out修飾傳遞參數(shù) ?出參:
A:影響實(shí)際參數(shù)
B:影響實(shí)際參數(shù)
out修飾的參數(shù) 相當(dāng)于在調(diào)用者中聲明 在被調(diào)用者中賦值
結(jié)構(gòu)體、基本數(shù)據(jù)類型(整型随静、浮點(diǎn)户魏、字符、布爾)、枚舉 統(tǒng)稱值類型
String 數(shù)組 類 引用類型
命名參數(shù)叼丑,?是指通過命名參數(shù)(形參名)調(diào)用关翎,實(shí)參順序可以和形參不同。
語(yǔ)法:
Method(形參名字:實(shí)參值);
示例:
public static void Add(int a,int b)
{
???? int result = a + b;
}
public static void Main (string[] args)
{
???? int c = 10;?
???? // 可以不按形式參數(shù)的順序傳入實(shí)際參數(shù)
???? Add(b:5,a:c);
}
含義:可選參數(shù)鸠信,是指給方法的特定參數(shù)指定默認(rèn)值纵寝,在調(diào)用方法時(shí)可以省略掉這些參數(shù)。
注意事項(xiàng):
(1)可選參數(shù)不能為參數(shù)列表的第1個(gè)參數(shù)星立,必須位于所有的必選參數(shù)之后(除非沒有必選參數(shù))爽茴;
(2)可選參數(shù)必須指定一個(gè)默認(rèn)值,且默認(rèn)值必須是一個(gè)常量表達(dá)式绰垂,不能為變量室奏;
(3)所有可選參數(shù)以后的參數(shù)都必須是可選參數(shù)。
(4)若要為可選參數(shù)傳遞新的值 請(qǐng)使用命名參數(shù)的語(yǔ)法
示例:
public static void Add(int a,int b=2)
{
???? int result = a + b;
}
public static void Main (string[] args)
{
???? int a = 10;?
???? // 省略b實(shí)際參數(shù)的傳遞
???? Add(a);
???? // 也可以不省略 為b重新賦值
???? Add(a,b:5);
}