C 基礎知識

2021-08-09 19:20:02 字數 3864 閱讀 8594

1.c#概述,c#語言及其特點;c#與.net框架關係

c#概述:c#是微軟公司發布的一種物件導向的、執行於.net framework之上的高階程式語言,c#是一種安全的、穩定的、簡單的、優雅的,由c和c++衍生出來的物件導向的程式語言

特點:1.簡單 2.現代 3.物件導向 4.型別安全 5.相互相容性 6.可伸縮性和可公升級性

關係:.net框架是由微軟開發的,致力於敏捷軟體開發、快速應用開發、平台無關性和網路透明化的軟體開發平台。

c#只是用於編寫執行在該平台上的一種語言。

2.編寫第乙個c#程式(注釋,命名空間,類,main方法,識別符號,關鍵字,輸入,輸出語句,)

using system;

}}

3.變數與常量(值型別,引用型別,兩者區別,列舉型別,型別轉換,變數宣告,變數作用域,變數賦值,常量)

值型別 引用型別

1、值型別的資料儲存在記憶體的棧中;引用型別的資料儲存在記憶體的堆中

2、值型別表示實際資料,引用型別表示指向儲存在記憶體堆中的資料的指標或引用

列舉:列舉使用enum關鍵字來宣告,與類同級。 

列舉是值型別,隱式繼承自system.enum,不能手動修改。system.enum本身是引用型別,繼承自system.valuetype。

列舉都是隱式密封的,不允許作為基類派生子類。

列舉型別的列舉成員均為靜態,且預設為int32型別。

每個列舉成員均具有相關聯的常數值。

列舉成員不能相同,但列舉的值可以相同。

列舉最後乙個成員的逗號和大括號後面的分號可以省略

型別轉換:

1.(int)變數名[強制型別轉換]

2.int.parse(string 變數名)

3.int.tryparse(string s, out int result)

4. convert.toint32

變數賦值:

值型別變數的賦值:值型別變數中儲存的是實際資料,在賦值的時候只是把資料複製乙份,然後賦給另乙個變數。

引用型別變數的賦值:  引用型別變數中儲存的是「指向實際資料的引用指標」。在進行賦值操作的時候,它和值型別一樣,也是先有乙個複製的操作,不過它複製的不是實際的資料,而是引用(真實資料的記憶體位址)。所以引用型別的變數在賦值的時候,賦給另一變數的實際上是記憶體位址。這樣賦值完成後,2個引用變數中儲存的是同一引用,他們的指向完全一樣。

變數宣告:

資料型別 變數名=值;

常量:c#常量主要分為兩種:編譯時和執行時常量

1、編譯時常量,在編譯時便用該常量的值代替常量變數。

2、執行時常量,在執行時返回乙個執行時常量的變數引用

4.表示式與運算子(表示式概念,運算子種類,運算子優先順序)

表示式概念:變數常量運算子組成

1.帶( )號,[ ]號, . 號的,new,typeof,sizeof,checked,x++,x--級別最高,先計算.

2.++x,--x,+,!

3.算術運算子,先*,/,%,再+,-

4.關係運算子,先》,<,>=,<=,is ,as再==和!=

5.條件邏輯運算子&&和||

6.條件運算子b?x:y

7,賦值運算子=,*=,/=,+=,-=

5.字元與字串(char類,char類的使用,string的基本使用,stringbulider的使用)

字串是由多個字元組成,字串是引用型別  字元:char類在c#中表示乙個unicode字元。

3)toupper**換為大寫)和tolower**換為小寫)

string s="raser";

string s1=s.toupper();//s1="raser";

string s2=s.tolower();//s2="raser";

trim() 出去兩邊的空格

string str="  dd  ";

string s=str.trim();//s="dd";

substring 擷取字元以index開始擷取,並擷取lenth個字元(string .substring(index,lenth))

string str="還在下雨";

string s=str.substring(2,2);//s="下雨";

remove刪除字串(字元)

在字串中移除從startindex開始,長度為length的字串,剩下的字符合為乙個新的字串

、insert 插入

在字串的index位置上插入字元,原來的字元依次後移,變成乙個新的字串

string str="夜深了";

string s=str.insert(1,"已經");//  s="夜已經深了"

replace 字串(字元也是可以的)替換,返回新的字串

string str="好睏呀";

string s=str.replace("困","精神");//s="好精神呀";

、equals 比較兩個字串是否相等

6.流程控制語句(選擇包括switch,迭代語句即迴圈(搞明白為什麼可以迴圈),跳轉(break,continue,goto,return))

int a=6;

switch(a)

break從迴圈體跳出  continue結束本次迴圈 goto無條件轉移語句

return 跳出迴圈的同時也做函式返回

7.陣列和集合(一維陣列和二維陣列的宣告以及使用,arraylist類,hashtable,list,directory字典等常用集合(泛型和非泛型))

string names = new string[5];//動態初始化

string names1 = new string[3] ;//定義並且賦予初值 動態初始化

int array = ;//靜態初始化變數,系統會自動分配記憶體空間 int[,] array = new int[2, 3];//宣告乙個兩行3列的陣列

宣告並且進行初始化

int[,] array = new int[2, 3] ,  };

arraylist類是乙個特殊的陣列。通過新增和刪除元素,就可以動態改變陣列的長度。

dictionary表示鍵和值的集合。

8.屬性和方法(屬性和方法的概念以及使用,注意,新特性中的自動屬性,方法的過載)

1、類的屬性:物件所擁有的特徵,在類中表示時稱為類的屬性。

2、類的方法:物件執行的操作稱為類的方法。

過載:方法名相同。

方法的引數型別、個數、順序至少有一項不相同。

方法的返回型別可以不相同,但只有返回型別不同是不可以的。

方法的修飾符可以不相同,但只有修飾符不同是不可以的

9.結構和類(結構的概念,類的概念,宣告,建構函式,物件的例項化,類和物件的關係,例項的和靜態的)

10.密封類和密封方法

密封類使用sealed關鍵字進行修飾,它不能用作其他類的基類,並且他沒有派生類,密封類的作用是防止其他類繼承該類,密封方法是使用sealed關鍵字進行修飾的方法,他並不能影響類的繼承,但它可以防止重寫基類中特定的虛方法。

public sealed  class sealclass

public sealed override void mymethod()

C 基礎知識

抽象類 abstract class 一種不可以被例項化的類。抽象類中一般含有抽象方法,當然也可有具體實現。繼承類只有實現過所有抽象類的抽象方法後才能被例項化。介面 inte ce 只含有共有抽象方法 public abstract method 的類。這些方法必須在子類中被實現。反射 程式集包含模...

c 基礎知識

或運算的意義是什麼 0 0 0 0 1 1 1 0 1 1 1 1 無進製與運算的意義是什麼 在vc中,視窗的每個屬性對應乙個只有一位為1的16位的二進位制數,當增加某屬性做或運算 即可,取消某個屬性只需與 上這個屬性的取反。cs.style ws maximizebox 和cs.style cs....

C 基礎知識

1 malloc和new區別與聯絡 a malloc malloc為函式,需要標頭檔案,申請的無型別,需要強制轉換 free釋放。示例 char p char malloc 10 sizeof char free p b new new是運算子,不需要標頭檔案,申請的是有型別的,自動呼叫建構函式 d...