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