方法又稱函式,是由物件或類執行計算或操作的成員。方法是最基本和最重要的函式成員,其他的函式成員(屬性、索引器、建構函式等)都是以方法為基礎來實現的,本質上都是方法。
c#宣告方法的基本形式:
[特殊]
[修飾符] [返回型別] [方法名]([形式引數列表]){
[方法體];
【形式引數列表】------可選、【方法體】------必須
靜態方法與例項方法區別?方法是否使用static 關鍵字。
方法引數:
一、按值傳遞引數
值引數是通過將實參的值複製到形參,來實現按值傳遞到方法,也就是我們通常說的按值傳遞。
方法被呼叫時,clr做如下操作:
1、在託管堆疊中為形參分配空間;
2、將實參的值複製到形參。
這個太常用了,按值傳遞引數,是複製乙份,因此不影響原來引數的值。
效果截圖:using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace hello_world
public static int plus(int i, int j)}}
二、按引用傳遞引數 -- 關鍵字ref
和前面的「按值傳遞」相對應的是按引用傳遞。顧名思義,這裡傳遞的不在是值,而是引用。注意這裡不是傳遞乙個複製品了,而是將真實的自己傳到方法中供方法玩弄。
注意點:
1、按引用傳遞的引數,系統不再為形參在託管棧中分配新的記憶體。
2、此時,形參名其實已經成為實參名的乙個別名,它們成對地指向相同的記憶體位置。
using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace hello_world
public static int plus(ref int i, ref int j)}}
效果截圖:
![](https://pic.w3help.cc/e22/12844761c32f665404b068ff4313c.jpeg)
三、輸出引數 - 關鍵字out
輸出引數和引用引數有一定程度的類似,輸出引數可用於將值從方法內傳遞到方法外,實際上就相當於有多個返回值。要使用輸出引數只需要將引用引數的ref關鍵字替換為out關鍵字即可。但又一點必須注意,只有變數才有資格作為輸出引數,文字值和表示式都不可以,這點要謹記。
注意兩個問題:
1、編譯器允許在方法中的任意位置、任意時刻讀取引用引數的值。
2、編譯器禁止在為輸出引數賦值前讀取它。
這意味著輸出引數的初始值基本上是沒意義的,因為它在使用前要被賦予新的值。因此想通過輸出引數將值傳入方法的路是行不通的。
效果截圖:using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace hello_world
public static int plus(int i, out int j) //形參錢要加ref關鍵字}}
四、引數陣列 - 關鍵字params
方法過載public class program
console.readkey();
}public static int plus(params int values)
return count;}}
方法的簽名構成:由方法的名稱和它的每乙個形參的型別和種類組成。
在同乙個類中,必須保證每乙個方法的簽名都是唯一的。但是,在同乙個類中允許存在許多多個名稱相同,但簽名方法不同的方法,這就是方法過載。
NumPy教程之(四)
numpy針對陣列 array 的基本數學操作函式一般是逐元素進行的,比如矩陣的加減運算,線性代數上的矩陣運算則有專門的函式,如dot函式等,具體看示例。陣列的有些數 算,如 和 施行的是原位運算,即直接修改覆蓋原來的變數,而不是新建乙個變數,如下所示 當遇到型別不同的陣列進行運算的時候,numpy...
SUNWEN教程之 C 高階(七) C 教程
好了,言歸正傳.我要說的是c 中的結構 struct 注意,我在這裡說的結構不是指的c 的語言結構.這裡所說的是一種與類 class 相對的東西,下面我就與類相對比,來說一說這個struct.下面的這個例子講述了如何建立乙個具有屬性,方法和乙個欄位的結構.並講述如何使用他.000 structs s...
Vue學習教程之插槽
前言 我們在寫頁面的時候可能會遇到如下需求 var componentslot2 data components 我們定義了乙個元件後,在 template 中定義更改為 template 我是子元件的 p 你好呀 於是我們採用另一種方式 將 html 作為值從父元件傳入子元件中,template ...