C 學習心路歷程

2021-06-25 23:47:04 字數 2549 閱讀 6529

這裡只記錄c#的特色地方,想來本科專攻c++跟圖形程式設計,真心沒想到半路殺出來個unity還特麼用了c#,所以嘛,最近惡補這方面的東西,把跟c++相似的地方看看就好,這裡把c#的好東東都記錄下,有一些還挺有逼格的說,希望能有幸成為高手!

1、params關鍵字

本關鍵字在於可變長引數的利用,比如

static void countnumbers(params int vals) " ,  val); }

} 呼叫的時候可以傳入任意數量的數字,比如countnumbers(1,2.3);

2、傳入引用

此處需要加ref

static void doit(ref int val )

在這個地方,傳入乙個const型別的變數就會變成非法的,因為const無法被改動,未賦值變數也不允許傳入,個人猜測應該是c#的記憶體機制,沒有用到或者複製的變數是不會去分配記憶體的。

傳入形式:doit(ref param);

3、out引數,傳出引用

這個引數代表傳入乙個引數之後,會在函式裡做修改,然後傳出,與ref相似,但是傳入必須是乙個未初始化的變數,否則如果已初始化,本變數在傳入函式時候會被清理為空

static void func(out int a);

4、引數作用域神奇版

int m;

for(int i = 0;i < 9;i++)

這裡在迴圈過後,是無法看到m的值的,因為m的記憶體是在迴圈中分配的,再迴圈中分配的記憶體,到了迴圈之外就會釋放掉,就好比區域性變數,這也是c#做出的很好的優化,所以需要有乙個標準:變數在宣告的時候就必須初始化!

5、委託

其實委託就是一種函式指標,宣告形式如下

delegate

double

processdelegate

(inta);

賦值跟執行的時候如此:

static

double

mult

(inta) 

", a);

return

0.0f;

}processdelegate

process

= new

processdelegate

(mult);

process(1

); 這個可以用來進行做監聽者模式

6、物件導向

繼承的時候,基類必須在介面類前面

public class myclass:base,interclass

介面定義:

public inte***ce myinter

型別建構函式,如果宣告為private的建構函式,可以用來作單例模式,防止生成新物件

對於析構函式,會先呼叫本類析構,之後呼叫父類析構,最後呼叫object的finalize函式進行清理

類內變數定義:

1、readonly關鍵字 public readonly  int myint = 17;這樣限制唯讀

2、virtual 方法可以重寫

3、abstract 方法是虛方法,子類中必須實現

4、override 方法重寫了乙個基類的方法

public

virtual

void

dosth

() 

}public

class myclass:mybaseclass 

}如果想讓重寫到此為止,即導致myclass的子類無法重寫dosth的話,就需要加入sealed關鍵字

public

override

sealed

void

dosth

() 

5、訪問器

private

intmyint;

public

intmyint

set 

}6、隱藏跟過載

隱藏即baseclass中由函式a,

public

class

baseclass }

public

class basederivedclass:baseclass 

}這樣的形勢下,無法進行多型,即無法用父類指標指向子類物件的方法來實現呼叫子類函式。但是子類自己可以調到

其中new的含義就是指重寫,否則會報警告。

在這裡插一嘴:

a、重寫:即在函式多型性中應用,子類重寫父類的虛函式

b、過載:利用函式的傳入引數不同而不同

c、隱藏:在子類中重新寫一遍父類的方法,用new來宣告,不具有多型性

不管是隱藏還是重寫,在子類中都可以先呼叫父類的對應函式,然後在寫自己的內容,就好比cocos2d-x中的onenter,可以先呼叫父類的onenter,再寫自己的

public

class

baseclass

}public

class basederivedclass:baseclass 

}

指標(心路歷程)

2019 3 10 許多初學c 語言指標的人剛開始會理不清思路,即使有教材書在比上也會一頭霧水,我也是剛入門,給一下我的想法。指標,簡單來說就是乙個存放位址的變數。你可一聯想門牌號和房子的關係。c語言的指標,主要兩種運算子。和 可以簡單理解為取值,而 可以理解為取址。例如char cp ch cp存...

心路歷程 20161118

171219我王老五又回來水題了!由於種種原因 比如不想參加本班只有四人參加的月考 本wc都去不了的蒟蒻回來準備,省選了,爭取拿到胸牌233.昨天因為不出去培訓,還被教練教育了一番quq 20天 期間單個的晚上刷水題 各種演算法的基本思想和裸的 實現 不追求比較深的內容。難度什麼的不好說 比如kmp...

踏上心路歷程。。。

其實我一直不喜歡把自己的心情筆記寫在部落格上,總覺的有點涉及隱私,加上我這人比較害羞 因為某人去年我連續好幾個月每天不間斷寫自己每天的心情筆記,不過現在再也沒機會因為某人而寫了,但這段經歷卻讓我習慣了寫些心情筆記,因為通過寫心情筆記讓我可以總結自己的學習和心靈感悟,能讓我悟出一些新的體會,讓我的思想...