C 學習教程之四

2021-06-20 04:17:01 字數 2267 閱讀 4495

方法又稱函式,是由物件或類執行計算或操作的成員。方法是最基本和最重要的函式成員,其他的函式成員(屬性、索引器、建構函式等)都是以方法為基礎來實現的,本質上都是方法。

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)}}

效果截圖:

三、輸出引數 - 關鍵字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 ...