C#中析构函数,命名空间及字符串的运用(Ninth day)
生活随笔
收集整理的這篇文章主要介紹了
C#中析构函数,命名空间及字符串的运用(Ninth day)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
又到了總結知識的時間了,今天在云和學院學習了析構函數(shù),命名空間及字符串的處理,現(xiàn)在就為大家總結下來。
理論:
析構函數(shù)
不能在結構中定義析構函數(shù)。只能對類使用析構函數(shù)。 一個類只能有一個析構函數(shù)。 無法繼承或重載析構函數(shù)。 無法調(diào)用析構函數(shù)。它們是被自動調(diào)用的。 析構函數(shù)既沒有修飾符,也沒有參數(shù)。 命名空間 ?namespace(命名空間),用于解決類重名問題,可以看做“類的文件夾”。 ?如果代碼和被使用的類在一個namespace則不需要using。 ?在不同命名空間下的類調(diào)用有兩種方法: –寫全稱? 命名空間.類名 –先using引用命名空間,再調(diào)用 (注:using可以聲明namespace的引入,還可以實現(xiàn)非托管資源的釋放,實現(xiàn)了IDisposiable的類在using中創(chuàng)建,using結束后會自動調(diào)用該對象的Dispose方法,釋放資源。) 字符串處理 string可以看做是char的只讀數(shù)組。char c = s[1]; ?C#中字符串有一個重要的特性:不可變性,字符串一旦聲明就不再可以改變。所以只能通過索引來讀取指定位置的char,不能對指定位置的char進行修改。 * 如果要對char進行修改,那么就必須創(chuàng)建一個新的字符串,用s. ToCharArray()方法得到字符串的char數(shù)組,對數(shù)組進行修改后,調(diào)用new string(char[])這個構造函數(shù)(暫時不用細研究)來創(chuàng)建char數(shù)組的字符串。一旦字符串被創(chuàng)建,那么char數(shù)組的修改也不會造成字符串的變化。 ?字符串的連接+,兩邊只要有一個是字符串類型,另一個也會被自動轉換成字符串類型 ?一切類型都可以調(diào)用.ToString()方法轉換成字符串類型. String類常用方法 s1.Equals(s2,StringComparison.OrdinalIgnoreCase),兩個字符串進行比較不區(qū)分大小寫的比較。 ?ToLower():得到字符串的小寫形式。(這個在前面已經(jīng)總結過) ?ToUpper():得到字符串的大寫形式; Trim()去掉字符串兩端的空白。(這個在前面已經(jīng)總結過) ?注意字符串是不可變的,所以這些函數(shù)都不會直接改變字符串的內(nèi)容,而是把修改后的字符串的值通過函數(shù)返回值的形式返回。s.ToLower()與s=s.ToLower() ?要區(qū)分變量名和變量指向的值的區(qū)別。程序中可以有很多字符串,然后由字符串變量指向他們,變量可以指向其他的字符串,但是字符串本身沒有變化。字符串不可變性指的是內(nèi)存中的字符串不可變,而不是變量不變。 字符串的分割 ?string[] Split(params char[] separator):將字符串按照指定的分割符分割為字符串數(shù)組; ?string[] Split(char[] separator, StringSplitOptions options)將字符串按照指定的char分割符分割為字符串數(shù)組( options 取RemoveEmptyEntries的時候移除結果中的空白字符串); 字符串函數(shù)詳解 ?字符串替換:string Replace(string oldValue, string newValue)將字符串中的出現(xiàn)oldValue的地方替換為newValue。例子:名字替換。 ?取子字符串:string Substring(int startIndex),取從位置startIndex開始一直到最后的子字符串; ?string Substring(int startIndex, int length),取從位置startIndex開始長度為length的子字符串,如果子字符串的長度不足length則報錯。 ?bool Contains(string value)判斷字符串中是否含有子串value ?bool StartsWith(string value)判斷字符串是否以子串value開始; ?bool EndsWith (string value)判斷字符串是否以子串value結束; ?int IndexOf(string value):取子串value第一次出現(xiàn)的位置。 ?Int IndexOf(string value,int startIndex) 實操: ?給前面寫的學生類添加構造方法.使在實例化學生類的時候可以通過構造方法對姓名性別年齡語數(shù)英等屬性賦值,也可以只對姓名和性別賦值.年齡默認為18歲,語數(shù)英成績默認為0分. –張三 男 18? 三科成績?yōu)?90 95 80 –小蘭 女 16? 三科成績?yōu)?95 85 100 *首先在定義一個類 class Student{//給前面寫的學生類添加構造方法.使在實例化學生類的時候可以通過構造方法對姓名性別年齡語數(shù)英等屬性賦值,也可以只對姓名和性別賦值.年齡默認為18歲,語數(shù)英成績默認為0分. //張三 男 18 三科成績?yōu)?90 95 80 //小蘭 女 16 三科成績?yōu)?95 85 100string name;string gender;int age=18;int chinese;int math;int english;public Student(string n,int a,string g,int c,int m,int e ){name = n;age = a;gender = g;chinese = c;math = m;english = e; }public Student(string n, string g, int c, int m, int e){name = n;gender = g;chinese = c;math = m;english = e;}public void Stt(){Console.WriteLine("大家好,我叫{0},是{1}同學,今年{2}歲,我的三科成績?yōu)?#xff1a;{3},{4},{5}", name, gender, age, chinese, math, english);}}在Main函數(shù)里寫
static void Main(string[] args){Student stu1 = new Student("張三",18,"男",90,95,80);Student stu2 = new Student("小蘭",16,"女 ",95, 85,100);Student stu3 = new Student("小蘭", "女 ", 95, 85, 100);stu1.Stt();stu2.Stt();stu3.Stt();Console.ReadKey();}?運行結果是:
?寫一個Ticket類,有一個距離屬性(本屬性只讀,在構造方法中賦值),不能為負數(shù),有一個價格屬性,價格屬性只讀,并且根據(jù)距離distance計算價格Price (1元/公里): –0-100公里??????? 票價不打折 –101-200公里??? 總額打9.5折 –201-300公里??? 總額打9折 –300公里以上??? 總額打8折有一個方法,可以顯示這張票的信息.90公里90塊錢
?測試上面的類. class Ticket{#region 構造函數(shù)public Ticket(int distance){ if(distance<0){distance = 0;}this.distance = distance;}#endregion int distance;public int Distance{get { return distance;} }double price=500;public double Price{get { if(distance<=100 && distance>=0){ return distance * 1.0;}else if(distance>=101 && distance<=200){return distance * 0.95;}else if(distance>=201 && distance<=300){return distance * 0.9;}else{return distance*0.8;}}}public void Show(){Console.WriteLine("{0}公里需要{1}錢",distance,price);}} static void Main(string[] args){Ticket t1 = new Ticket(110);Console.WriteLine(t1.Price);Console.ReadKey();}?測試結果:這道題不知道哪里出現(xiàn)問題了,結果并沒有運用到Show方法
?字符串的運用
隨機輸入你心中想到的一個名字,然后輸出它的字符串長度? Length:可以得字符串的長度
兩個學員輸入各自最喜歡的課程名稱, 判斷是否一致,如果相等,則輸出你們倆喜歡相同的課程.?如果不相同,則輸出你們倆喜歡不相同的課程.
讓用戶輸入一個日期格式如:2008-01-02,你輸出你輸入的日期為2008年1月2日
static void Main(string[] args){Console.WriteLine("請輸入日期");string date = Console.ReadLine();string[] strs = date.Split('-');string datetine = strs[0] + "年" + strs[1] + "月"+strs[2]+"日" ;Console.WriteLine(datetine);Console.ReadKey();}?
今天就總結到這里吧,下周一在繼續(xù)學習吧。加油!
轉載于:https://www.cnblogs.com/ysaw/p/4098159.html
總結
以上是生活随笔為你收集整理的C#中析构函数,命名空间及字符串的运用(Ninth day)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第31讲 UI组件之 Gallery画廊
- 下一篇: 谁是最好的Coder