1、名詞解釋
.net/DotNet:一般指.Net Framework 架構,是一種平台,一種技術
C#:一種程式設計語言,可以開發基於.net 平台的應用
Java:既是一種技術,又是一種程式設計語言
Winform:.net開發的傳統型應用程式
ASP.Net:.net開發的 Internet 應用程式
WP7:.net可以用作的手機開發
IDE:(Integrated Development )整合式開發環境
ASCII(American Standard Code for Information Interchange,美國資訊互換標準代碼)
MSIL:微軟中繼語言 Microsoft Intermediate Language
CLR: 通用語言執行平台 Common Language Runtime
包括:CLS、CTS(相當於英語當中的單詞和文法),CLR有一項服務稱為GC (垃圾收集,Garbage Collector)
CLS:Common Language Specification Common Language Specification CTS:公用類型系統 Common Type System
JIT:即時編譯器 Just In Time
BCL:基底類別庫 Base Class Library
CIL的術語是IL Intermediate Language
MFC:微軟基礎類庫 Microsoft Foundation Classes
COM:元件物件模型 Component Object Model
FCL:架構類庫 Framework
IDE:整合式開發環境
MSDN:百科全書 Microsoft Developer Network
C/S:客戶機(Client)/伺服器模式(Server) 客戶需要安裝專用的用戶端軟體 如:qq
B/S:瀏覽器(Browser)/伺服器模式(Server) 客戶機上只要安裝一個瀏覽器
C/S和B/S都必須要連網
2、資料類型
int num = 100;//------>存的是整數類型的資料
double douNum=0.12345;//---->小數類型的資料
* decimal :金錢小數,儲存金錢,注意格式,如下:
decimal deciNum=24.1234m;//---->也存小數,是金錢類型,注意數字後面的m
char ch='A';//---->字元類型,只能存一個字元,不可為空
string str="哈哈";//------>字串類型,可以為空白
注意:命名規則 連網
3、常用的轉義符
\\ :代表一個杠 \ ":代表一個雙引號 \n:代表換行 \t:代表定位字元,盡量與上面的內容對齊
\b:代表佔位,如果前面有內容,那麼就覆蓋前面的內容
@ :該符號可以表示不轉義,可表示路徑
有以下幾種用法:
(1)換行;(2)加在字串的前面,使字串失效;(3)表示路徑
4、類型轉換
(1):類型的自動轉換
參與運算的運算元首先資料類型一定要相同,除非兩個運算元的類型相相容,或者目標類型大於源類型。
如:int類型和double類型相相容,並且 double>int ,可以計算的。int 類型可以隱式轉換成 double類型。
(2):強制類型轉換(顯示轉換)
一定要相容,但會丟失精度。舉例說明為:int num=(int)10.5
切記:int 轉換為double 為隱式轉換,多小數;double轉換為int 為顯示轉換,丟精度。
(3):其他
程式需要使用者輸入時,使用者輸入的內容接收時都是字串類型,若需要進行計算,可以通過 Convert.ToInt32(該例放入待轉換的字串類型的數字)
如:int num=Convert.ToInt32(strNum);
若使用者輸入的是小數,則:double num=Convert.ToDouble(strNum);
5、算術運算子和複合賦值運算子
(1):必須瞭解自加自減:++、--
舉例講解:a++ 為先參與運算再進行自身的加1;++a恰好相反,為先進行自身的加1再參與運算。a--和--a的用法是一樣的。
由上可知: 一元運算子的定義:對於像++、--這樣的只需一個運算元就可以進行運算的運算子稱為一元運算子。
(2)複合賦值運算子:+=、-=、*=、/=、%=
舉例講解:int a=22;
a *= 3; 就相當於 a=a*3; 最終a的結果輸出為:66
對於像如上的需要兩個運算元才可以進行運算的運算子稱為二元運算子。
優先順序:一元運算子比二元運算子高
下面做個例題:
int a,b=6,c=7;
a=b++ * --c; //此時a的輸出結果為:36
上題若改為: a=++b * c--; //此時a的輸出結果即為:49
6、判斷語句、迴圈語句
(1)if - else語句 (其中可以嵌套多個else if語句)
**注意:if子句中的運算式必須等於布爾值 true 或 false。例如在C#中,常會出現一個編譯錯誤,因為除非在處理bool值,否則“=”不會返回bool
文法:
if (條件1){ //判斷條件1是否正確,若正確則執行下面的 else if 語句 else if (條件2){語句1; //判斷條件2是否正確,若正確則執行語句1}else 語句2; //若條件2不正確,則執行語句2}else {語句3; //若條件1不正確,則執行語句3}
(2)switch - case 語句 (其中可以有很多個case的語句)
文法:
switch (運算式\變數){ case 值1:語句1; break; case 值2:語句2; break; ... default:語句n; break;}
執行過程:當程式運行時,先判斷 “運算式\變數”,將該值與case語句逐個比較,若和值1匹配,則執行語句1,隨後執行break,跳出迴圈,依次類推,執行所有的case語句;若都不匹配,則執行default下的 語句n ,再break,跳出迴圈。
(3)while 迴圈 (為先判斷,再執行;至少執行了一次迴圈體)
int i=0;while(條件/運算式)-------------------------------ài<某一個數{ 迴圈體; i++; //若去掉i++ 這一行,則會造成死迴圈 } //若條件/運算式成立,則執行迴圈體;若不成立,則跳出迴圈,執行後面的代碼
(4)do while 迴圈 (為先執行,再判斷;有可能一次都不執行迴圈體)
do{ 迴圈體;}while(條件);
執行過程:當程式運行到do的時候,直接進入裡面的迴圈體;然後在走到while(條件)這行代碼,進行判斷,如果條件成立,就再一次執行裡面的迴圈體,否則 直接 跳出迴圈.再執行後面的代碼。
(5)for 迴圈
for(運算式1;運算式2;運算式3) //若去掉“運算式2”或“運算式3”,則造成死迴圈{迴圈體;} //先運行“運算式1”,再運行“運算式2”,之後執行“迴圈體”,接著再運行“運算式3”,然後再運行“運算式2”,再執行“迴圈體”,以此類推,直至“運算式2”為不滿足時,跳出迴圈,程式結束。
#####---- break:跳出當前迴圈;continue:終止本次迴圈,但不跳出,並判斷迴圈條件,若成立,則進入下一個迴圈,直至條件不成時退出迴圈。
7、三元運算式和輸出
文法:運算式1?運算式2:運算式3 例子:bool result=5>3?true:false,意思是判斷“result=5>3”是否成立,若成立則輸出“true”,否則為“false”。
輸出:int.Parse 等
8、常量、枚舉、結構
(1)常量:固定的始終不變的量
文法:const 類型 常量名=常量值
例子:const double Pi=3.14;
Pi=3.10; //若運行此語句,則出現錯誤提示:“賦值號左邊必須是變數、屬性或索引器”
(2)枚舉:一般把枚舉寫在命名空間中、類的外面,但是寫在類裡面是不報錯的
enum 枚舉名{值1,值2,... //值是固定的,不能輕易的改變,若改變,則下面的那個枚舉值就會加一。枚舉值的本質就是數字,但定義時一般不定義為數字}
####----字串與枚舉的轉換
例子:(Gender)(enum.Parse(typeof(Gender),"male")) 即:(待轉換的枚舉類型)(Enum.Parse(typeof(待轉換的枚舉類型),待轉換的字串))
####----int和枚舉的轉換,如下:
public enum jijie{ 春, 夏, 秋, 冬}class Program{ static void Main(string[] args) { Console.WriteLine("請選擇您想要的季節,0-春,1-夏,2-秋,3-冬"); //string str = Console.ReadLine(); //int num = Convert.ToInt32(str); //jijie ji = (jijie)num; //Console.WriteLine("您選擇的是{0}",ji); //Console.ReadKey(); int num = (int)jijie.夏; Console.WriteLine("{0}",num); Console.ReadKey(); }
}
(3)結構(可以解決一次性聲明多個不同類型的變數的問題)
文法: 存取修飾詞struct結構名
{
定義結構成員
}
例子:
class Program{ public struct Person { public string name; //前面加上了存取修飾詞public之後就不再是變數,而是一個欄位 public int age; public char gender; } static void Main(string[] args) { Person zsPerson; zsPerson.name = "張三"; zsPerson.age=22; zsPerson.gender='男'; }
}
將枚舉和結構合起來可以這樣用:
public enum g{ 男, 女}public struct Person{ public string name; public int age; public g gender;}class Program{ static void Main(string[] args) { Person zsPerson; zsPerson.name = "張三"; zsPerson.age=22; zsPerson.gender=g.男; }}
9、數組
<1> 四種聲明數組的類型:
(1)int[] num1=new int[10]; //只聲明長度為“10”的數組
(2)int[] num2=new int[3]{11,24,55}; //聲明長度為3的數組,且裡面有對應個數的元素
(3)int[] num3=new int[]{12,45,643,456,34}; //在聲明數組時直接添加了元素,由元素的個數決定數組的長度
(4)int[] num4={13,243,54,67}; //聲明數組時直接添加元素,預設的數組長度就是元素的個數
<2> 存值:通過下標或者索引來存值、賦值。
int[] nums=new int[10]; nums[0]=2; nums=[6]=5;
取值:通過下標或者索引來取值。 Console.WriteLine(nums[5]);
<3> 數組的排序 Array.Sort(nums); Array.Reverse(nums);
//自己查下冒泡排序法,挺簡單的,這裡不寫了
10、try...catch 的簡單用法
try{ // 有可能出現錯誤的代碼}catch{ // 如果try中的代碼出現異常,則轉入catch中的代碼}
try...catch 是讓程式員看的,便於修改可能出現異常的代碼
**11、方法
作用:減少代碼量,將很多重複的代碼放在一起,用時直接調用就ok。(函數就是將一堆代碼進行重用的一種機制)
一個方法就是完成一個功能。
(1)方法的命名規則:
<1>方法名開頭大寫,參數名開頭小寫,參數名、變數名要有意義。
(2)文法:
[存取修飾詞] static 傳回值類型 方法名([參數列表]) ---->[]代表著可有可無,當前預設為:public
{
方法體;
}
public static void Show() { Console.WriteLine("如果你想要改變這個世界,那麼你才能改變這個世界"); }
(3)方法的調用
對於靜態方法的調用,有兩種方式: “類名.方法名();” 或者 如果在同一個類中,可以直接寫“方法名();”
(4)靜態方法 (只要在方法中看到static,那麼這個方法就是靜態方法)
(5)如果方法的傳回值類型是 void ,則這個方法沒有傳回值;
如果這個方法可以給變數賦值,我們就說這個方法有傳回值,接受這個方法的變數決定了該方法的傳回值類型。
ruturn 返回變數的值並直接退出方法。
(6)方法的重載
方法的重載就是說方法名可以相同,但是裡面的參數個數不能相同,還有類型也不能相同。或者是參數個數可以相同,但是類型不能相同。
12、類
文法:[存取修飾詞]class類名
{
成員;.....
}
類中可以包含變數的定義、方法
類的執行個體化,用關鍵字new。 文法:類 執行個體名=new 類();
類的成員訪問 文法:執行個體名.屬性 執行個體名.方法名();
存取修飾詞:public private(internal protected)
(1)屬性
欄位用 public 修飾的問題...用 private
屬性的定義 get,set
屬性是為了保護與之相對應的欄位,保證對欄位的讀取和賦值符合要求
屬性可以分為:讀寫、唯讀、唯寫 (屬性中的get和set分別代表讀和寫)
允許外部存取的變數一定要聲明為屬性
***** 給name的屬性賦值,就相當於給欄位賦值。類不佔記憶體,但對象占記憶體
(2)類的建構函式
構造方法用來建立對象,並且可以再建構函式匯總對對象進行初始化。建構函式可以重載,也就是有多個參數不同的建構函式。
(3)解構函式
1> 不能再結構中定義解構函式,只能對類使用解構函式。
2>一個類只能有一個解構函式
3>無法繼承或重載解構函式
4>無法調用解構函式,因為它本身是被自動調用的
5>解構函式沒有修飾符,也沒參數
--後記:這是我自己重新系統性的學習C#時做的小筆記,大多內容是基礎性的理論知識,供自己參考,也分享給朋友們嘍,@_@