C#中的變量:
一個變量就是存儲區(內存)中的一個存儲單元。
變量聲明賦值:int money =1000;/int money;money=1000; 輸出:console.writeLine(money);console.ReadLine(money);
變量的命名規則:即標識符的命名規則: 字母,數字,下划線(不能以數字開頭,區分大小寫)
命名規范:簡短且能清楚的表明變量的作用,通常第一個單詞的首字母小寫,其后單詞的首字母大寫,例如myScore
變量的作用域(生命周期):類體中的成員變量(類中的全局變量)-》1.static int x=90;//靜態變量 2 .int x=90;//實例變量
靜態方法中調用靜態變量可以根據變量名(類名.變量名)直接調用,而想調用實例變量必須經過對象名調用。

class Program { int aa=10;//實例變量 static int bb=20;//靜態變量 static void Main(string[] args) { Program pro=new Program(); Console.WriteLine(pro.aa); Console.WriteLine(bb); } }
方法中的局部變量 :只限制於方法內可以調用。
數據類型:
值類型:整數/實數/字符/布爾 結構/枚舉
-------值類型直接存儲值(對一個對象進行修改,不會改動其他對象值)
八進制(以0開頭,其他為0-8)十六進制(以0X開頭);C#默認小數是double類型,所以使用float類型時后面加f.
特點:值類型表示實際數據,只是將值存在內存中,值類型都存儲在棧(固定空間)中。
引用類型:類/接口/數組/委托 一般會用到New關鍵字,string類型是引用類型
特點:引用類型表示指向數據的指針或引用,包含內存堆(動態空間)中對象的地址,為NULL,表示未引用任何對象。
類型轉換:隱式類型轉換:低精度向高精度轉換,可以隱式轉換,或者兩者可兼容,例如int與double
顯式轉換/強制轉換:
int b=(int)10.2;//(類型名)表達式 double a=10; int c=(int)a;
double a=10;
int c=Convert.ToInt32(a);//Convert.To類型名(表達式)經常用
double a=10;
double c=double.Parse(a.ToString());//.Parse類型名(表達式必須為String型)
string str="10";
int c=Int32.Parse(str);
值類型轉換為->引用類型 稱為裝箱
引用類型轉換為->值類型 稱為拆箱
int i =10;//值類型 object obj=i;//裝箱操作 int j=(int)obj;//拆箱操作
枚舉類型:
枚舉是一組描述性的名稱
枚舉定義一組有限的值,不能包含方法
對可能的值進行約束
枚舉允許描述性名稱表示整數值
語法:enum 枚舉名{值1,值2...}
public enum Mrkj { CS=1,Java=2,C=3 } 在main方法中輸出 console.WriteLine((int)Mrkj.CS);
枚舉使用:日期相關程序,編寫用戶權限
常量:
靜態常量:const 不能被修改 ,與static變量相同,可以直接通過類名調用。
動態常量:readonly 在構造函數中可以被修改
C#中的表達式與運算符
表達式由操作數與運算符構成
運算符:+ - * / %
自增自減運算符:b=a++(先取值,后自增);b=--a(先自減,后取值);
賦值運算符=:需要注意賦值左右兩邊值類型的隱式轉換問題。
關系(比較)運算符:>= <= > < == !==
邏輯運算符:非! 與&& 或 || (如果使用&或者| ,效率沒有&&,||效率高)
位運算符:按位與運算 5&4=4.因為5=00101 ,4=00100,按位與得到00100
按位或運算 3|6=7.因為3=00011 ,6=00110,按位或得到00111
按位取反運算 ~7取反為-8.因為7=00000111 ,按位取反得到11111000
按位異或運算 10^3=9.因為10=001010 ,3=000011,按位異或得到001001
移位運算:左移位<<右移位>> 左移幾位就是*2的幾次方。 右移幾位就是除以2的幾次方。
特殊運算符:
運算符的優先級:下圖優先級從上到下,由高到低。(結合表示同級從右向左,從左向右)
C#中的字符與字符串
字符 char(單個字符) 用單引號 ,例如char a=‘a’;可以通過調用char類下的方法進行一些操作,具體通過help查看其相關方法
轉義字符:“\”將原有字符的意義改變
轉義符 | 說明 |
\n | 回車換行 |
\t | 橫向跳到下一制表位置 |
\" | 雙引號 |
\b | 退格 |
\r | 回車 |
\f | 換頁 |
\\ | 反斜線符 |
\' | 單引號符 |
如果想輸出目錄,例如“C:\windows\app\sad\haha”,有很多反斜線,則可以使用@方法,即@“C:\windows\app\sad\haha”。也可正常輸出。
字符串 string 用雙引號
string str1=null;//null與空字符串不是同一概念。null不推薦
string str2="";
連接多個字符串使用“+”運算符
比較字符串:if(name==""){} if(name.Equals(string.Empty)){}
string.Compare(str1,str2) str1.CompareTo(str2) 這兩種可以比較兩個字符串的值,但如果是英文或漢字,則比較他們在字典中的位置。如相等返回0,不等返回1.或-1
格式化字符串:string myString=string.Format("{0}乘以{1}等於{2}“,2,3,2*3);//輸出結果為2乘以3等於6
格式化日期格式:
插入字符串:在字符串的指定位置插入子字符串
語法 string Insert(int startIndex ,string value)
填充字符串:在字符串的左側或者右側進行字符填充(只能填充一個單字符)
語法 string PadLeft(int totalWidth,char paddingchar)
string PadRight(int totalWidth,char paddingchar)
刪除字符串:從一個字符串的指定位置開始,刪除指定數量的字符
語法 string Remove(int startIndex,int count)
復制字符串:Copy方法----全部復制 (靜態方法,通過類名調用)
CopyTo方法----部分復制(非靜態方法,通過對象名調用)
string str="helloworld"; string str1=string.Copy(str);//完全復制 char[] ch1=new char[10]; str.CopyTo(6,ch1,3,4);//部分復制,參數代表含義為從str的第6個字符復制5個字符到ch1數組中,從第三個位置開始粘貼
替換字符串:將字符串中的某個字符或者字符串替換成其他的字符或字符串
語法 string Replace(char OldChar,char NewChar)
string Replace(string OldValue,string NewValue)
StringBuilder類(對原有對象進行操作,不會生成新的對象)
其存在System.Text命名空間中
常用的方法:Append//AppendFormat//Insert//Remove//Replace
StringBuilder sbuilder=new StringBuilder("MR"); sbuilder.Append("soft"); sbuilder.AppendFormat("{0:C}",365); sbuilder.Insert(2,"mr"); sbuilder.Remove(2,2); sbuilder.Replace("soft","SOFT");//輸出MRSOFT¥365.00
StringBuilder 與String的區別在於String Builder效率更高
C#中的條件判斷語句
if else
if else if
switch case
C#中的循環控制語句
while語句
do while語句
for循環語句
foreach語句 用於枚舉一個集合的元素,並對該集合中的每個元素執行一次嵌入語句。
using System.Collection; 在main方法中 ArrayList list=new ArrayList(); list.Add("a"); list.Add("b"); list.Add("c"); foreach (string str in list) { Console.WriteLine(str); } Console.ReadLine();
C#中的跳轉語句
break; 用於退出最內層的循環或者退出一個switch語句
contine; 用於終止當前循環,並開始下一次循環,只能用於while /do while/for/foreach 中
goto 用於將控制轉移到由標簽標記的語句,goto case 【參數表達式】;goto default;goto【標簽】;
return;返回語句 返回與方法相同的數據類型
數組
一維數組
聲明初始化數組 int[] numbers = new int[5];
float[] scores = new float[3]{1.1f,2.4f,5.6f};
string[] names = new string[10];//使用new是給數組動態賦值。
string[] s={"laowang","laozhang","laoli"};//給數組進行靜態賦值Tips:CW+tab+tab---Console.WriteLine();
for+tab+tab,----快捷鍵輸出for循環
二維數組
int[,] numbers =new int[2,3];//聲明一個2行3列的數組,初始值為0.
int[,] numbers =new int[2,3]{
{1,2,3},
{4,5,6}
};
遍歷二維數組除了使用雙層遍歷for循環,還可以用更簡單的foreach方法 , 當我們不需要對循環本身進行控制, 推薦使用foreach。 foreach (int num in numbers){}