一個變量就是存儲區(內存)中的一個存儲單元。windows
變量聲明賦值:int money =1000;/int money;money=1000; 輸出:console.writeLine(money);console.ReadLine(money);數組
變量的命名規則:即標識符的命名規則: 字母,數字,下劃線(不能以數字開頭,區分大小寫) app
命名規範:簡短且能清楚的代表變量的做用,一般第一個單詞的首字母小寫,其後單詞的首字母大寫,例如myScoreide
變量的做用域(生命週期):類體中的成員變量(類中的全局變量)-》1.static int x=90;//靜態變量 2 .int x=90;//實例變量函數
靜態方法中調用靜態變量能夠根據變量名(類名.變量名)直接調用,而想調用實例變量必須通過對象名調用。ui
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); } }
方法中的局部變量 :只限制於方法內能夠調用。spa
值類型:整數/實數/字符/布爾 結構/枚舉
-------值類型直接存儲值(對一個對象進行修改,不會改動其餘對象值)指針
八進制(以0開頭,其餘爲0-8)十六進制(以0X開頭);C#默認小數是double類型,因此使用float類型時後面加f.code
特色:值類型表示實際數據,只是將值存在內存中,值類型都存儲在棧(固定空間)中。orm
引用類型:類/接口/數組/委託 通常會用到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 在構造函數中能夠被修改
表達式由操做數與運算符構成
運算符:+ - * / %
自增自減運算符: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的幾回方。
特殊運算符:
運算符的優先級:下圖優先級從上到下,由高到低。(結合表示同級從右向左,從左向右)
字符 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效率更高
if else
if else if
switch case
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();
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){}