C#方法2
返回值:
返回值型別:
任意的資料型別或者void
void表示該方法無返回值
方法有無返回值取決於方法的呼叫者是否需要返回值
引數:
引數分為兩種:
形式引數:在編寫方法的時候 預定義的引數
實際引數:在實際呼叫(使用)方法的時候 傳入方法的引數
引數的型別:
形式引數:任意的資料型別 由方法編寫者在預定義時限定
實際引數:任意的資料型別(和形式引數匹配)在方法的呼叫者中定義賦值
宣告和傳參:
形式引數:
public static void Area(int radius)//int radius即為形式引數
{
....
}
實際引數:
public static void Main (string[] args)
{
int r = 1;
Area(r); // r即為實際引數
}
// 傳參的實質:用實際引數為形式引數賦值
int radius = r;
引數陣列,通過關鍵字params定義引數陣列。呼叫時可以傳入個數不同的實參,具備很好的靈活性。
引數陣列必須為引數列表的最後一個引數
引數列表之前可以設定其他的引數
示例:
//引數陣列,關鍵字params
static void Add(params int[] p)
{
for(int i=0;i
資料型別按照大的分類:值型別和引用型別
值型別:基本資料型別、列舉和結構
引用型別:陣列、類(String)、介面等
區別:
值型別相當於單獨的一個箱子 直接操作箱子內的內容
引用型別相當於管理儲存箱子的管理員
從以下幾個方面來了解它們的具體區別:
1.宣告時
值型別:新產生一個箱子 等待儲存
引用型別:產生一個箱子管理員 等待一個箱子
2.被賦值
值型別:將新的內容直接放在箱子內
引用型別:和=右邊的管理員一起管理同一個箱子
out 和 ref
函式引數預設是值傳遞的,也就是“複製一份”
out和ref傳遞的都是地址引用而不是值
1.形參和實參指向同一地址
2.始終保證形參和實參指向同一地址
區別:
out只出不進
ref又進又出
方法定義時的選擇:
1.若方法只有一個返回值 選擇使用返回值型別
例:
public static int ReturnInt()
{
return 1;
}
2.如果返回值多於1個 選擇使用out
public static void ReturnInt(out int a,out int b)
{
//a、b賦初值
// a、b參與運算
}
呼叫時: int c;int d; ReturnInt(out c,out d);
3.如果需要直接將結果返回到某一個變數上 使用ref
public static void ChangeString(ref String s)
{
s = "000"+s;
}
呼叫時: String ss = "1"; ChangeString(ref ss);
引數傳遞需要明白的要點:
形參的修正對實參的影響程度
引數傳遞的方式:
形式引數 = 實際引數
引數的傳遞大致分為三類:
預設傳參(無修飾傳參)值傳參
ref修飾傳遞引數 地址傳參
out修飾傳遞引數 出參
傳參規則:
根據形式引數型別的不同 對實際引數的影響程度也不相同
A:String、結構體、基本資料型別(整型、浮點、字元、布林)、列舉
B:類、陣列
預設傳參(無修飾傳參)值傳參:
A:不影響實際引數
B:影響實際引數
ref修飾傳遞引數 地址傳參:
A:影響實際引數
B:影響實際引數
out修飾傳遞引數 出參:
A:影響實際引數
B:影響實際引數
out修飾的引數 相當於在呼叫者中宣告 在被呼叫者中賦值
結構體、基本資料型別(整型、浮點、字元、布林)、列舉 統稱值型別
String 陣列 類 引用型別
命名引數, 是指通過命名引數(形參名)呼叫,實參順序可以和形參不同。
語法:
Method(形參名字:實參值);
示例:
public static void Add(int a,int b)
{
int result = a + b;
}
public static void Main (string[] args)
{
int c = 10;
// 可以不按形式引數的順序傳入實際引數
Add(b:5,a:c);
}
含義:可選引數,是指給方法的特定引數指定預設值,在呼叫方法時可以省略掉這些引數。
注意事項:
(1)可選引數不能為引數列表的第1個引數,必須位於所有的必選引數之後(除非沒有必選引數);
(2)可選引數必須指定一個預設值,且預設值必須是一個常量表示式,不能為變數;
(3)所有可選引數以後的引數都必須是可選引數。
(4)若要為可選引數傳遞新的值 請使用命名引數的語法
示例:
public static void Add(int a,int b=2)
{
int result = a + b;
}
public static void Main (string[] args)
{
int a = 10;
// 省略b實際引數的傳遞
Add(a);
// 也可以不省略 為b重新賦值
Add(a,b:5);
}
相關文章
- C#效率優化(2)-- 方法內聯C#優化
- C# 7.0 新特性(2): 本地方法C#
- c# 方法C#
- C#方法C#
- C#密封方法C#
- C#常用方法C#
- Beginner with c# 2 (轉)C#
- C# 泛型方法C#泛型
- c# 反射呼叫方法C#反射
- Thread2(C#)threadC#
- C#操作XML方法集合C#XML
- C#方法過載概念C#
- C#常用集合總結-2C#
- C#陣列教程之2C#陣列
- C#學習筆記2C#筆記
- CefSharp ——js呼叫c#方法JSC#
- C# 8: 預設介面方法C#
- C# List.ForEach 方法C#
- c#之tcbs方法示例hasvalueC#
- c#之tcbs method方法示例C#
- c#之tcbs method方法_getC#
- C#呼叫js庫的方法C#JS
- c#之tcbs struct(2)小記C#Struct
- C# 語法糖 ver2C#
- C#事件及響應方法概述C#事件
- C#讀取Excel方法總結C#Excel
- C# 反射呼叫擴充類方法C#反射
- C#快速入門教程(6)——方法C#
- C#使用資原始檔的方法C#
- C# 列舉常用方法淺析C#
- 實現方法 C# button快捷鍵C#
- C# array類的相關方法C#
- 轉發:C#加密方法彙總C#加密
- 用C#讀寫XML的方法C#XML
- C# DataTable Compute方法的使用C#
- c#之String.Split 方法C#
- 改善C#程式的50種方法C#
- c# 方法引數_值引數C#