C#基礎知識學習筆記
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
3-常量聲明:const關鍵字 const PI=3.14; //使用const聲明常量后不能在程序中再對值進行修改 int a=1,b=2,c=3;Console.WriteLine("a={0},b={1},c={2}",a,b,c) 5-算數運算符 取整(/):小除大為0,大除小取整數值-->字符串:.ToString() int a = 100; string b=a.ToString(); Console.WriteLine(b); 字符串-->值:.Parse string a = "200"; int b=int.Parse(a); Console.WriteLine(b); int [] arr={1,2,3,4};
//輸入數組長度,并為每個索引賦值,賦值完成后輸出每個索引的值 Console.WriteLine("請輸入數組的長度:"); int length=int.Parse(Console.ReadLine()); int[] arr3 = new int[length]; //定義數組 for (int j = 0; j < arr3.Length; j++){ Console.WriteLine("請輸入第{0}個數值",j+1); arr3[j]=int.Parse(Console.ReadLine()); //為每個位置賦值 } Console.WriteLine("打印數組內容為:"); for (int j = 0; j < length; j++){ Console.WriteLine("第{0}個的值為:", arr3[j]); Console.WriteLine(arr3[j]); //輸出 } //二維數組的遍歷int[,] arr=new int[2,3]{ {1,2},{2,3},{3,4} }; for(i=0;i<arr.GetLength(0);i++)//循環行。GetLength(0)獲取行數 { for(j=0;j<arr.GetLength(1);j++)//循環列。GetLength(1)獲取列數 { Console.Write(arr[i,j]); } } 修飾符:static靜態的,private私有的,public公有的 static void HelloWorld() { Console.WriteLine("hello world"); } static void Sum(int a,int b) { int Sum=a+b; Console.WriteLine(Sum); } static int Sum2(int a,int b) //int為返回值類型 { int Sum2=a+b; Console.WriteLine(Sum2); return Sum2; //使用return返回結果 } Motor mortor=new Mortor(); //實例化枚舉 motor=Motor.啟動; Console.WriteLine(motor); //以內容的形式顯示 Console.WriteLine((int)motor); //以數值的形式顯示 struct Motor { public string Start; public string Stop; } Morot motor=new Motor(); //實例化結構體 motor.Start="電機啟動"; motor.Stop="電機停止"; Console.WriteLine("motor.Start"); //與西門子的博圖軟件中建立的結構體變量很類似。 internal class Motor //新建Motor類文件 { public string Start; //定義全局變量 public string Stop; public void Dianji() //定義全局函數 { Console.WriteLine("電機狀態有:{0}、{1}",this.Start,this.Stop); } } Motor motor = new Motor(); //實例化類 motor.Start = "啟動"; //引用類中的元素 motor.Stop = "停止"; motor.Dianji(); internal class Motor { //在類型前面加static public static string Start; //static靜態成員 public static string End; public static void Qidong() { Console.WriteLine("啟動"); } } //靜態成員調用 ,不需要實例化對象 //實例成員會單獨占用一個內存 //靜態成員共享一個內存 Motor.Start = "開始啟動"; Motor.End = "開始停止"; Motor.Qidong(); 在類中聲明兩個名稱相同的方法,調用時即可選擇性的傳遞自己需要的方法中的參數。 internal class Employee { //使用三斜杠解釋代碼塊的具體含義 /// <summary> /// 計算A類工資 /// </summary> /// <param name="baseSa">基本工資</param> /// <param name="workYear">工作年限</param> /// <param name="yearSa">工資年齡</param> /// <returns>總工資</returns> //將兩個方法的名稱設置一致,返回值也要一致,才能構成重載 public double Salary(double baseSa,int workYear,double yearSa) { double sum = baseSa + workYear * yearSa; return sum; } /// <summary> /// 計算B類工資 /// </summary> /// <param name="baseSa">基本工資</param> /// <param name="workYear">工作年限</param> /// <param name="yearSa">工資年齡</param> /// <param name="ProSa">項目資金</param> /// <returns>總工資</returns> public double Salary(double baseSa, int workYear, double yearSa,double ProSa) { double sum = baseSa + workYear * yearSa+ProSa*0.1; return sum; } } Employee emp = new Employee(); //實例化類 double Salary1 = emp.Salary(10, 10, 10); //調用方法1 double Salary2 = emp.Salary(10, 10, 10, 1000); //調用方法2 Console.WriteLine(Salary1);Console.WriteLine(Salary2); 17-get set訪問器(將屬性私有化,通過公有化的方式進行操作) get{}訪問器:設置對象可讀,用于獲取字段的值,需要使用return返回字段的值。 set{}訪問器:設置對象可寫,用于設定字段的值,需要使用一個特殊的值,這個值就是在面向對象設計中,對字段設置的值。 public 數據類型 屬性名 { get { 獲取屬性的語句塊; return 值; } set { 設置屬性得到語句塊; } } 在新建類中對屬性進行定義時,使用Public則外部程序可以隨意對類中的屬性進行修改,使用private則外部程序又無法訪問,此時可以對private定義的屬性通過get,set訪問器來進行訪問。 private string status; public string Status //通過Status訪問status { //通過共有的Status對私有的status進行讀寫操作 //外部程序中調用Status,對Status的寫操作經由set賦值給status。 get { return status; } //設置屬性可讀 set //設置屬性可寫,value為外部傳給過來的值。經過Status傳給status { //當外部程序輸入的內容不是"正轉"、"反轉"的話顯示輸入錯誤 if (value.Equals("正轉")||value.Equals("反轉")) { status = value; //關鍵字、將外部輸入的內容賦值給value然后由value寫給status } else status = "輸入錯誤"; } } static void Main(string[] args) { Motor motor=new Motor(); motor.Num = 1; motor.Status = "正轉"; motor.MoStatus(); } 訪問流程-執行 motor.Status = "正轉";調用Status中的set訪問器,將"正轉"傳給value,再經value傳給private中的ststus 18-構造函數 特點---名字必須與定義它的類名完全相同,并且沒有返回類型; internal class Motor { public string EquName { get; set; } public string EquStatus { get; set; } //構造一個與類名相同的函數,參數類型與類中的參數一致,并將參數進行傳遞 public Motor(string equName,string equstatus)//名稱與類名相同,實例化的同時賦值 { EquName = equName; EquStatus = equstatus; } public Motor() //先實例化再賦值,即創建一個構造函數的重載 { } public void MStatus() { Console.WriteLine("{0}電機{1}",EquName,EquStatus); } }
19-繼承 類與類之間可以形成繼承的關系,即父類與子類之間的關系。 格式:子類:父類 實例化子類可以引用父類中的聲明 建立子類SaleMan internal class SaleMan:Employee //表示Employee這個類是SaleMan這個類的父類 { public string WorkYear { get; set; } } 建立父類Employee internal class Employee //父類中的元素在子類中均可用 { public string Num { get; set; } public string Name { get; set; } public string Sex { get; set; } } 調用類 SaleMan Sale=new SaleMan();Sale.Name = "ABCD"; //Name本為Employee中的元素,由于Employee為SaleMan的父類,故SaleMan實例化后有父類的屬性 public Motor(string equName, string equStatus)//構造函數 { EquName = equName; EquStatus = equStatus; } public string EquName { get; set; } public string EquStatus { get; set; }
public Motor(string equNo, string equName, string equStatus) { //根據equNo對集合進行操作 EquNo = equNo; EquName = equName; EquStatus = equStatus; } public string EquNo{ get; set; } public string EquName { get; set; } public string EquStatus { get; set; } Motor M11 = new Motor("001", "走行1", "正轉");//實例化類并賦值 Motor M12 = new Motor("002", "走行2", "反轉"); Motor M13 = new Motor("003", "升降1", "正轉"); Motor M14 = new Motor("004", "升降2", "反轉"); Hashtable hslist = new Hashtable(); //聲明集合并實例化 hslist.Add(M11.EquNo, M11); //M11.EquNo為唯一的鍵值對, hslist.Add(M12.EquNo, M12); hslist.Add(M13.EquNo, M13);//要添加元素的鍵和元素的值 //獲取某個元素 Console.WriteLine("編號為001的設備:" + ((Motor)hslist["001"]).EquName); Console.WriteLine("編號為002的設備:" + ((Motor)hslist["002"]).EquStatus); Console.WriteLine("編號為001的設備:" + ((Motor)hslist[M14.EquNo]).EquName);//獲取M14對應編號的設備名 Console.WriteLine(); //循環遍歷(遍歷鍵、遍歷值) Console.WriteLine("遍歷鍵-----------------------"); foreach (string item in hslist.Keys)//鍵的類型全部為字符串類型 { Console.WriteLine(item+" "); } Console.WriteLine(); Console.WriteLine("遍歷值----------------------------"); foreach (Motor item in hslist.Values) //將鍵值對的值進行組合 { Console.WriteLine("設備號:{0},設備名:{1},設備狀態:{2}", item.EquNo, item.EquName, item.EquStatus); } Console.WriteLine(); //刪除,通過鍵值對刪除 hslist.Remove("001"); //添加元素 hslist.Add(M14.EquNo,M14); foreach (Motor item in hslist.Values) //將鍵值對的值進行組合 { Console.WriteLine("設備號:{0},設備名:{1},設備狀態:{2}", item.EquNo, item.EquName, item.EquStatus); } //清除 hslist.Clear(); public Travel(string trNo,string trName) //構造函數,在聲明時賦值 { TRNo = trNo; TRName = trName; } public string TRNo; public string TRName; Travel TR1 = new Travel("001", "走行1"); Travel TR2 = new Travel("002", "走行2"); List<Travel> list=new List<Travel>(); //list里面只能添加Travel類中的元素 //添加 list.Add(TR1); list.Add(TR2); //獲取元素個數 Console.WriteLine("共有"+list.Count+"個元素"); //獲取指定的元素 Console.WriteLine("第2個元素:" + ((Travel)list[1]).TRName); //插入 Travel TR3 = new Travel("003", "走行3"); list.insert(0, TR3);//將TR3插入到索引0的位置 //刪除 list.Remove(TR2); list.RemoveAt(0); //遍歷 foreach (Travel item in list) { Console.WriteLine("遍歷設備編號:{0},設備名稱{1}", item.TRNo, item.TRName); } //清除 list.Clear(); public Travel(string trNo,string trName) //構造函數,在聲明時賦值 { TRNo = trNo; TRName = trName; } public string TRNo; public string TRName; Travel TR1 = new Travel("001", "走行1"); Travel TR2 = new Travel("002", "走行2"); //<>中是鍵值對的類型,值 Dictionary<string, Travel> dict = new Dictionary<string, Travel>(); //指定鍵和值的類型 //添加 dict.Add(TR1.TRNo, TR1); dict.Add(TR2.TRNo, TR2); //獲取元素個數 Console.WriteLine("共有:"+dict.Count +"個元素"); //刪除,通過鍵值對刪除 dict.Remove("001"); //遍歷鍵值對 foreach (string item in dict.Keys) { Console.WriteLine(item); } //遍歷值 foreach (Travel item in dict.Values) { Console.WriteLine("設備編號:{0},設備名稱{1}", item.TRNo, item.TRName); } //清除 dict.Clear(); 該文章在 2023/5/15 22:24:30 編輯過 |
關鍵字查詢
相關文章
正在查詢... |