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#方法C#
- c# 反射呼叫方法C#反射
- C#呼叫python的方法C#Python
- CefSharp ——js呼叫c#方法JSC#
- C#呼叫js庫的方法C#JS
- C# 8: 預設介面方法C#
- C# 語法糖 ver2C#
- C#快速入門教程(6)——方法C#
- C#讀取Excel方法總結C#Excel
- C#事件及響應方法概述C#事件
- C#各種加密方法,字典排序C#加密排序
- C# 反射呼叫擴充類方法C#反射
- C#學習筆記-方法引數、擴充套件方法C#筆記套件
- C# 生成隨機數,呼叫Random方法C#隨機random
- C#設計模式(14)——模板方法模式C#設計模式
- c#(解析xml檔案基礎方法)C#XML
- C# StartsWith 字串的例項方法解析C#字串
- WPF/C#:資料繫結到方法C#
- C#拼接Json串的幾種方法C#JSON
- C# 給PDF簽名時新增時間戳的2種方法(附VB.NET程式碼)C#時間戳
- c# 敏捷2 ForEach ToDictionary ToLookup Except比較C#敏捷
- C# pythonnet(2)_FFT傅立葉變換C#PythonFFT
- 重學c#系列——linq(2) [二十八]C#
- C#如何用最簡單方法呼叫Python?C#Python
- 【轉】[C#] 建立返回多個值的方法C#
- C#開發中常用的加密解密方法C#加密解密
- C# 依賴注入IServiceCollection的AddSingleton方法使用C#依賴注入
- C#設計模式-模板方法模式(Template Method)C#設計模式
- C#開發中常用加密解密方法解析C#加密解密
- 【C#】-對於Null值的處理方法C#Null
- c# 一些警告的處理方法C#
- C#類中方法的執行順序C#
- C# WinForm獲取程式所在路徑方法C#ORM
- 深入解析 C# 的 String.Create 的方法C#
- .NET混合開發解決方案11 WebView2載入的網頁中JS呼叫C#方法WebView網頁JSC#
- C#中抽象方法與虛方法的區別詳解及示例C#抽象
- C#獲取根目錄的方法總結C#