熟悉C#語言要求:對構成C#語言的基本元素,隨便拿出一個你都認識,對于常見基本元素,都能正確使用它
精通C#語言要求:對于構成C#語言的基本元素,隨便拿出一個都會使用,對于常用基本元素,你不但會使用,還不會出錯時要在更深層次理解這些基本元素,了解背后運行的機制
文章目錄
- 構成C#語言的基本元素
- 標記(Token)——六種基本元素
- 關鍵字(Keyword)—詞匯
- 操作符(Opertator)—運算符
- 標識符(Identifier)—標記
- 標點符號
- 文本(字面值)
- 注釋與空白
- 簡要介紹類型、變量與方法
- 初始類型(Type)
- 變量
- 方法
- 算法簡介
- 作業
構成C#語言的基本元素
標記(Token)——六種基本元素
關鍵字(Keyword)—詞匯
構成一門編程語言的基本詞匯,漢語常用詞匯量七八萬,英語常用詞匯量也是七八萬,C#是高級編程語言,它設計的初衷是用近似人類自然語言的語法,來表達編程邏輯,所以C#語言是人類自然語言一個非常非常小的子集,小到它的詞匯量只要能夠表達人類邏輯思維就行了,多余詞匯就去掉不要了,C#語言有接近一百個詞匯(關鍵字)
注意:
1,有些關鍵字有多個用途
2,關鍵字是按邏輯分組的
操作符(Opertator)—運算符
操作符也叫運算符,顧名思義是用來表達運算思想的符號,一共三四十個,分為以下幾類:
Primary:基本操作符
x.y 點操作符
f(x) a[x] x++ x-- new typeof checked unchecked default(T) delegate sizeof ->
Unary:一元運算符,單目運算符,只能去操作一個操作數
+x -x !x ~x ++x —x (T)x &x *x
Multiplicative:乘法性操作符
x*y x/y x%y
Additive:加法性操作符
x+y x-y
shift: 位移(將內存中的一個數向左移向右移)
x<>y
Relational and type testing:關系操作符(比大小)和類型檢驗操作符(檢驗一個對象到底是不是一個類的實例)
xy x<=y x>=y is as
Equality:相等性操作符
x==y x != y
Logical AND: x&y
Logical XOR: x^y
Logical OR: x|y
Conditional AND : x && y
Conditional OR: x||y
Null-coalescing: x??y
Conditional: ?:
Assignment and lambda expression:
x=y x+=y x-=y x*=y x/=y x%=y x&=y x|=y
x^=y x<<=y x>>=y =>
標識符(Identifier)—標記
什么是標識符
俗話來說就是名字,取名起名字。給變量,類,類的成員(屬性,方法,事件)起的名字都叫標識符,就像給人取名字有規范一樣,給變量,類,類的成員起名字也有嚴格的規范
什么是合法的標識符?
1.首先一個標識符不能跟關鍵字沖突,關鍵字又叫保留字(這門編程語言已經把這個單詞保留了,不能把這個單詞當作標識符使用)
2.可以用字母(包括大寫字母小寫字母),數字和下劃線,來組成標識符,但是不能拿數字開頭,可以拿字母和下劃線開頭
符合這些規范的標識符是合法標識符
例外:如果想拿關鍵字當標識符,前面加上@符號
——怎樣閱讀C#語言定義文檔(C#語言里的憲法)
大小寫規范
駝峰命名法:幾個單詞合一起,頭一個單詞首字母小寫,后面的單詞開頭字母大寫,這叫駝峰法,變量名都是用駝峰法
帕斯卡命名法:構成標識符的每個單詞的首字母大寫,其他字母都小寫。名稱空間名,類名,方法名都是用這個方法命名
命名規范
在給變量,類,類的成員命名的時候,要求變量名,類名,類的成員名要有意義,保證代碼的可讀性強。
對類命名的時候,類的名字一定要是一個名詞
對類的成員命名的時候,屬性一定要是一個名詞
方法一定要是一個動詞,或者動詞短語,因為它表示一個類能夠做什么
標點符號
; {}
文本(字面值)
(1)整數
int x=2; //普通整型:用32個比特位存儲這個整數
long y=3L; //長整型:整數加上后綴L,變成長整型,用64個比特位存儲3這個整數
它們是用二進制來表示的
(2)實數(小數)
float x= 3.0; //用32個比特位表示一個浮點數
double y=4.0D; //用64個比特位表示一個浮點數
(3)字符
char c=‘a’; //單引號里只能有一個字符,為一個字符類型的變量賦值
(4)字符串
string str=“ABCDE”; // 雙引號
string str=“a”;
區別:字符和字符串,類型完全不同
(5)布爾
bool b=true;
bool b2=false;
左邊的是變量,右邊的是文本
(6)空(null)
關鍵字,操作符,標識符,標點符號,文本統稱為標記(Token),標記就是對于編譯器來說,有意義的記號,編譯器能夠識別出這些東西
注釋與空白
單行注釋 //
塊注釋
/* string str = null;
Form f = null;
f.ShowDialog();
*/
空白
Form f = new Form();
f.ShowDialog();
編譯器會把注釋和空白忽略掉,注釋與空白對于編譯器來說沒有意義,所以不算在標記(Tonken)之內
簡要介紹類型、變量與方法
初始類型(Type)
也稱數據類型(Data Type)
//var x = 3; //Int32//Console.WriteLine(x.GetType().Name);//var x = 3L; //Int64//Console.WriteLine(x.GetType().Name);//數據類型不一樣,在內存中存儲的形式不一樣//var x = 3.0; //Double//Console.WriteLine(x.GetType().Name);var x = 3.0F; //Single:單精度浮點型Console.WriteLine(x.GetType().Name);//var自動獲得變量的類型int x;x = 100;Console.WriteLine(x.GetType().Name);float x1;x1 = 3.0F; //Single,后面要加f,大小寫均可Console.WriteLine(x1.GetType().Name); Double x2;x2= 3.0; //Double Console.WriteLine(x2.GetType().Name);
變量
變量是存放數據的地方,簡稱“數據”
聲明變量格式
變量類型 變量名=初始值;
變量類型有14種
a.有符號的整型變量
能存儲正負數和0 下面給出大概范圍(賦值時超出范圍會報錯)
sbyte -128~127
int -21億~21億
short -32768~32767
long -9百萬兆~9百萬兆
示例代碼
sbyte a = 1;Console.WriteLine("存儲的數:"+a); //輸出之間的連接用+
b.無符號的整型變量
能存儲一定范圍0和正數
byte 0~255
uint 0~42億
ushort 0~65535
ulong 0~18百萬兆
c.浮點數
float 存儲7或8位有效數字,具體取決于編譯器 四舍五入 從左到右非0數開始算有效數字
double 存儲15~17位有效數字 C#中聲明小數默認double類型
decimal 存儲27~28位
float f = 0.1234f; //后面要加f 大小寫均可double d = 0.12456434;decimal de = 0.124543534234t254m; //后面要加m 大小寫均可
d.特殊類型
bool 變量值為true或false 表示真假數據類型
char 存儲單個字符 單引號括住要賦的值
string 存儲字符串 雙引號括住要賦的值
string s1="hello", s2="world", s3="good"; //數據類型相同的多個變量可以同時聲明
方法
舊稱函數,成員函數,是處理數據的邏輯,又稱為“算法”。方法可以理解為數據的加工廠,你把原料送進去,加工廠加工后把原料返還給你,這就是方法,方法就是數據的加工廠
方法的聲明
方法的調用
三類常見的方法:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace MyExample3
{class Program{static void Main(string[] args){//方法的聲明//方法的調用Caculator c = new Caculator();//int x= c.Add(2, 3);// Console.WriteLine(x);//string str = c.Today();//Console.WriteLine(str);c.PrintSum(4, 6);}}class Caculator{//有數據輸入,有數據輸出public int Add(int a, int b){ //定義方法,為了能夠在類的外面能夠訪問方法,要加上publicint result = a + b;return result; //把結果拿到后返回給調用方法的人}//2.沒有數據輸入,有數據輸出public string Today(){int day = DateTime.Now.Day;return day.ToString();}//3.有數據輸入,沒有數據輸出,返回類型要用voidpublic void PrintSum(int a,int b){int result = a + b;Console.WriteLine(result);}}
}
程序=數據+算法
有了變量和方法就可以寫有意義的程序了
算法簡介
循環
遞歸
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace MyExample2
{class Program{static void Main(string[] args){Caculator c = new Caculator();int result = c.SumForm1ToX(3);Console.WriteLine(result);}}class Caculator{// 循環思想:占用內存比較少//public int SumForm1ToX(int x)// {// int result = 0;// for (int i =1; i < x+1; i++)// {// result = result + i;// }// return result;// }//遞歸思想;占用內存比較多//public int SumForm1ToX(int x)//{// if (x==1)// {// return 1;// }// else// {// int result = x + SumForm1ToX(x - 1);// return result;// }//}public int SumForm1ToX(int x){//數學算式return (1 + x) * x / 2;}}
}