課程
/后端開(kāi)發(fā)
/C#
/C#面向?qū)ο缶幊?/a>
如題,我想照著再敲一遍,但是視頻里代碼翻的太快了,好難捕捉啊 ?。?!
2018-07-26
源自:C#面向?qū)ο缶幊?nbsp; 8-1
正在回答
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;
namespace ces{??? class Program??? {??????? delegate void mmd(); //聲明一個(gè)賣(mài)萌大賽委托??????? static void Main(string[] args)??????? {???????????? /*??????????? Pet[] cry = new Pet[] { new Dog("小狗"), new Cat("小貓"), new Dog("小狗1") };??????????? for (int x = 0; x < cry.Length; ++x)??????????? {??????????????? cry[x]++;??????????????? cry[x].speak();??????????????? cry[x].AVG();??????????? }
??????????? Cat c = new Cat("Tom2");??????????? c.speak();??????????? c.fishing(); //輸出技能??????????? c.tree();??????????? Console.WriteLine();??????????? Dog.NUM();
??????????? Dog d1 = new Dog("Tom");??????????? d1.speak(); ??????????? Cat c1 = d1;? //把小狗變小貓??????????? c1.speak();????????? /?????????? var dogCage=new Cage<Dog>(1); //<放入寵物類(lèi)型>????????? dogCage.PutIn(new Dog("A")); //(new Dog("")調(diào)用寵物院里的寵物名字)?????????? dogCage.PutIn(new Dog("B"));??????????? var dog = dogCage.TakeOut(); //取出籠子里的狗,不取就沒(méi)法出現(xiàn)被隱藏了?????????? dog.PrintName();? //取出的寵物名字是??????????? ?????????? ??????????? var dog = new Dog("F");??????????? dog.lsHappy<Person>(new Person()); //<聲明的人變量>后面是實(shí)列化new Person()相當(dāng)于Person person=new Person();??????????? dog.lsHappy<int>(3); //當(dāng)狗看見(jiàn)3開(kāi)心 ??????????? ??????????? Labrador dog = new Labrador("小狗A");??????????? dog.Act(new SitDogCmd()); //實(shí)列輸出技能并用act引用??????? //列表:List?????????? List<Dog>? list = new List<Dog>();??????????? list.Add(new Dog("C"));??????????? for(int i=0;i<list.Count;++i){list[i].PrintName();}??????????? //字典:Dictionary??????????? Dictionary<string,Dog> dic = new Dictionary<string, Dog>();??????????? dic.Add("A",new Dog("小狗2號(hào)")); //ADD添加 數(shù)量Count? 刪除Remove 訪問(wèn)[Key]??????????? dic["A"].PrintName();??????????? ????????????? //棧:Stack ??????????? Stack<Pet> stack = new Stack<Pet>(); //棧后面的<>指定類(lèi)然后是實(shí)列化??????????? stack.Push(new Dog("狗A"));??????????? stack.Push(new Cat("貓A"));??????????? stack.Peek().PrintName();
??????????? //隊(duì)列:??? Queue? //先進(jìn)先出類(lèi)似2端開(kāi)口 出隊(duì)Dequeue 入隊(duì)Enqueue??????????? Queue<Pet> queue = new Queue<Pet>();??????????? queue.Enqueue(new Dog("小狗B1"));??????????? queue.Enqueue(new Dog("小狗B2"));??????????? Pet pet = null;??????????? pet = queue.Dequeue();??????????? pet.PrintName();??????????? pet = queue.Dequeue();??????????? pet.PrintName();
??????????? mmd del = null;??????????? Dog dog1 = new Dog("小狗賣(mài)萌");??????????? Cat cat1 = new Dog("小狗賣(mài)萌");??????????? del = dog1.MM;??????????? del += cat1.MM;? //del+= 相當(dāng)于第一個(gè)加上第二個(gè)并且自動(dòng)換行??????????? del();? //輸出delegate委托??????????? */??????????? KF c1 = new KF();? //實(shí)列化一個(gè)客服??????????? KF c2 = new KF();??????????? Dog.XCW += c1.tz;? //把客服賦值給XCW委托事件,然后用委托事件判斷是否有新的寵物??????????? Dog.XCW += c2.tz;? //因?yàn)橐嚷暶鞑拍苜x值判斷否者是空??????????? Dog dog = new Dog("哈士奇");???????????? Console.ReadLine();??????? }??? }}
namespace ces{??? ??? interface skill? //本領(lǐng)??? {??????? void fishing();? //fishin捕魚(yú)??? }??? interface climb??? {??????? void tree();??? }??? public abstract class DogCmd??????? {???????? public abstract string GetCmd();//聲明GetCmd方法抽象方法abstract 不用函數(shù)體只能被繼承修改???????? }? //定義技能??? public class SitDogCmd:DogCmd??? {??????? public override string GetCmd()??????? {?????????? return "坐下"; //return還回? 還回一個(gè)坐下的參數(shù)給GetCmd()??????? }??? }? //什么技能??? public interface lDogLearn<C>where C:DogCmd //限制c這個(gè)接口只能接受DogCmd相關(guān)的技能??????? {??????? void Act(C cmd);???????? }? //聲明泛型接口來(lái)學(xué)技能??? public abstract class Pet? //abstract抽象化使相當(dāng)于不存在??? {??????? public string NAME;? //在父類(lèi)中聲明在派生類(lèi)中base(繼承對(duì)象)??????? public Pet(string name)??????? {??????????? NAME = name;??????????? age = 0;??????? }??????? public abstract void speak();??????? public int age;??????? public static Pet operator ++(Pet pet)??????? {??????????? ++pet.age;??????????? return pet;??????? }??????? public void AVG()??????? {??????????? Console.WriteLine("今年:" + age + "歲");??????? }??????? public void PrintName()??????????? {?????????????? Console.WriteLine("寵物的名字是"+NAME);???????????? }??????? public abstract void MM();??? }??? public class Dog : Pet??? {??????? public static int Nom; //聲名Nom為整數(shù)的靜態(tài)??????? public static void NUM()??????? {??????????? Console.WriteLine("現(xiàn)在有幾條狗:" + Nom);? //用靜態(tài)輸出打印的狗??????? }??????? public Dog(string name) : base(name)??????? {??????????? ++Nom; //每賦值一個(gè)名字就加一條狗??????????? if (XCW != null)? //判斷當(dāng)xcw不為空時(shí)還回給XCW新寵物??????????? {???????????????? XCW();??????????? }??????? }??????? public override void speak()??????? {
??????????? Console.WriteLine(NAME + "汪汪");??????? }??????? public void lsHappy<T>(T target)//where T:class //泛型方法? //約束只能用引用類(lèi)型所以int會(huì)報(bào)錯(cuò)??????????? {??????????????? Console.WriteLine("開(kāi)心"+target.ToString()); //就是將該對(duì)象變成字符串,例如你傳進(jìn)來(lái)一個(gè)Cat類(lèi)的對(duì)象cat,他就會(huì)將cat這個(gè)對(duì)象以字符串形式表現(xiàn)出來(lái)??????????? }???????? public override void MM()??????? {????????? Console.WriteLine("哈士奇萌萌大賽");???????? }??????? public delegate void XC(); //聲明事件??????? public static event XC? XCW; //限制事件??? }??? public class Cat : Pet, skill, climb??? {??????? public void fishing()??????? {??????????? Console.Write("捕魚(yú)");??????? }??????? public void tree()??????? {??????????? Console.Write("爬樹(shù)");??????? }??????? public Cat(string name) : base(name)??????? {??????? }??????? public override void speak()??????? {
??????????? Console.WriteLine(NAME + "喵喵");??????? }??????????????? //用自定義方法可以轉(zhuǎn)換類(lèi)型括號(hào)是要轉(zhuǎn)換對(duì)象,必須不加保護(hù)級(jí)別不抽象????????? public static? implicit operator Cat(Dog dog)??????????? {????????????? return new Cat(dog.NAME);???????????? }???????????????? public override void MM()??????? {????????? Console.WriteLine("無(wú)辜看著你");???????? }??? }??? class Person //定義一個(gè)人的類(lèi)當(dāng)狗看見(jiàn)人開(kāi)心??????? {??????? }??? public class Labrador : Dog,lDogLearn<SitDogCmd>? //泛型<>接受上文聲明的技能??? {??????????? public Labrador(string name):base(name)??????????? {??????????? }????????????? public void Act(SitDogCmd cmd) //實(shí)現(xiàn)一個(gè)泛型接口????????????? {??????????? Console.WriteLine(cmd.GetCmd()); //輸出技能????????????? }??? }??? public class KF? //定義一個(gè)顧客類(lèi)??? {??????? public void tz()??????????? {???????????? Console.WriteLine("有新的寵物來(lái)了");???????????? }???? }????? }
namespace ces{??? public class Cage<T>??? {??????? T[] array;? //寵物??????? int num;?? //聲明輸入寵物的數(shù)量??????? readonly int Size;? //籠子數(shù)量
??????? public Cage(int n)??????? {??????????? Size = n; //賦值給籠子數(shù)量??????????? num = 0;? //寵物初始為0??????????? array = new T[Size]; //把籠子給寵物??????? }??????? public void PutIn(T pet)??????? {??????????? if (num < Size)??????????? {??????????????? array[num++] = pet;??????????? }??????????? else??????????? {??????????????? Console.WriteLine("籠子不夠,放不下");??????????? }??????? }??????? public T TakeOut()? //取出寵物??????? {??????????? if (num > 0)??????????? {??????????????? return array[--num]; //取出一只就減一個(gè)??????????? }??????????? else??????????? {??????????????? Console.WriteLine("籠子是空的");??????????????? return default(T);??????????? }??????? }??? }}
上把我看了在碼的泛型方法那簡(jiǎn)直崩潰
Heron_Wang 提問(wèn)者
這些代碼難道不該是一起跟著打的嗎,光下載下來(lái)有什么用。。。
老師是按他自己講的所以沒(méi)有下載地方不過(guò)上面的是我看完老師碼完了所有課程的(注解我有的理解錯(cuò)誤)
哪里下載?
舉報(bào)
本系列教程主要是,帶你學(xué)習(xí)C#面向?qū)ο缶幊痰木幊趟枷?、編程技?/p> 進(jìn)入課程
1 回答課程資料在哪下載
1 回答請(qǐng)問(wèn)在哪里下載C#
1 回答可以把整個(gè)的代碼給我發(fā)一下嗎?
1 回答請(qǐng)問(wèn)這個(gè)PPT哪里可以下載
2 回答課堂中的代碼問(wèn)題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢(xún)優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2018-08-08
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ces
{
??? class Program
??? {
??????? delegate void mmd(); //聲明一個(gè)賣(mài)萌大賽委托
??????? static void Main(string[] args)
??????? {
???????????? /*
??????????? Pet[] cry = new Pet[] { new Dog("小狗"), new Cat("小貓"), new Dog("小狗1") };
??????????? for (int x = 0; x < cry.Length; ++x)
??????????? {
??????????????? cry[x]++;
??????????????? cry[x].speak();
??????????????? cry[x].AVG();
??????????? }
??????????? Cat c = new Cat("Tom2");
??????????? c.speak();
??????????? c.fishing(); //輸出技能
??????????? c.tree();
??????????? Console.WriteLine();
??????????? Dog.NUM();
??????????? Dog d1 = new Dog("Tom");
??????????? d1.speak();
??????????? Cat c1 = d1;? //把小狗變小貓
??????????? c1.speak();
????????? /
?????????? var dogCage=new Cage<Dog>(1); //<放入寵物類(lèi)型>
????????? dogCage.PutIn(new Dog("A")); //(new Dog("")調(diào)用寵物院里的寵物名字)
?????????? dogCage.PutIn(new Dog("B"));
??????????? var dog = dogCage.TakeOut(); //取出籠子里的狗,不取就沒(méi)法出現(xiàn)被隱藏了
?????????? dog.PrintName();? //取出的寵物名字是
???????????
??????????
??????????? var dog = new Dog("F");
??????????? dog.lsHappy<Person>(new Person()); //<聲明的人變量>后面是實(shí)列化new Person()相當(dāng)于Person person=new Person();
??????????? dog.lsHappy<int>(3); //當(dāng)狗看見(jiàn)3開(kāi)心
???????????
??????????? Labrador dog = new Labrador("小狗A");
??????????? dog.Act(new SitDogCmd()); //實(shí)列輸出技能并用act引用
??????? //列表:List
?????????? List<Dog>? list = new List<Dog>();
??????????? list.Add(new Dog("C"));
??????????? for(int i=0;i<list.Count;++i){list[i].PrintName();}
??????????? //字典:Dictionary
??????????? Dictionary<string,Dog> dic = new Dictionary<string, Dog>();
??????????? dic.Add("A",new Dog("小狗2號(hào)")); //ADD添加 數(shù)量Count? 刪除Remove 訪問(wèn)[Key]
??????????? dic["A"].PrintName();
???????????
????????????? //棧:Stack
??????????? Stack<Pet> stack = new Stack<Pet>(); //棧后面的<>指定類(lèi)然后是實(shí)列化
??????????? stack.Push(new Dog("狗A"));
??????????? stack.Push(new Cat("貓A"));
??????????? stack.Peek().PrintName();
??????????? //隊(duì)列:??? Queue? //先進(jìn)先出類(lèi)似2端開(kāi)口 出隊(duì)Dequeue 入隊(duì)Enqueue
??????????? Queue<Pet> queue = new Queue<Pet>();
??????????? queue.Enqueue(new Dog("小狗B1"));
??????????? queue.Enqueue(new Dog("小狗B2"));
??????????? Pet pet = null;
??????????? pet = queue.Dequeue();
??????????? pet.PrintName();
??????????? pet = queue.Dequeue();
??????????? pet.PrintName();
??????????? mmd del = null;
??????????? Dog dog1 = new Dog("小狗賣(mài)萌");
??????????? Cat cat1 = new Dog("小狗賣(mài)萌");
??????????? del = dog1.MM;
??????????? del += cat1.MM;? //del+= 相當(dāng)于第一個(gè)加上第二個(gè)并且自動(dòng)換行
??????????? del();? //輸出delegate委托
??????????? */
??????????? KF c1 = new KF();? //實(shí)列化一個(gè)客服
??????????? KF c2 = new KF();
??????????? Dog.XCW += c1.tz;? //把客服賦值給XCW委托事件,然后用委托事件判斷是否有新的寵物
??????????? Dog.XCW += c2.tz;? //因?yàn)橐嚷暶鞑拍苜x值判斷否者是空
??????????? Dog dog = new Dog("哈士奇");
???????????? Console.ReadLine();
??????? }
??? }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ces
{
???
??? interface skill? //本領(lǐng)
??? {
??????? void fishing();? //fishin捕魚(yú)
??? }
??? interface climb
??? {
??????? void tree();
??? }
??? public abstract class DogCmd
??????? {
???????? public abstract string GetCmd();//聲明GetCmd方法抽象方法abstract 不用函數(shù)體只能被繼承修改
???????? }? //定義技能
??? public class SitDogCmd:DogCmd
??? {
??????? public override string GetCmd()
??????? {
?????????? return "坐下"; //return還回? 還回一個(gè)坐下的參數(shù)給GetCmd()
??????? }
??? }? //什么技能
??? public interface lDogLearn<C>where C:DogCmd //限制c這個(gè)接口只能接受DogCmd相關(guān)的技能
??????? {
??????? void Act(C cmd);
???????? }? //聲明泛型接口來(lái)學(xué)技能
??? public abstract class Pet? //abstract抽象化使相當(dāng)于不存在
??? {
??????? public string NAME;? //在父類(lèi)中聲明在派生類(lèi)中base(繼承對(duì)象)
??????? public Pet(string name)
??????? {
??????????? NAME = name;
??????????? age = 0;
??????? }
??????? public abstract void speak();
??????? public int age;
??????? public static Pet operator ++(Pet pet)
??????? {
??????????? ++pet.age;
??????????? return pet;
??????? }
??????? public void AVG()
??????? {
??????????? Console.WriteLine("今年:" + age + "歲");
??????? }
??????? public void PrintName()
??????????? {
?????????????? Console.WriteLine("寵物的名字是"+NAME);
???????????? }
??????? public abstract void MM();
??? }
??? public class Dog : Pet
??? {
??????? public static int Nom; //聲名Nom為整數(shù)的靜態(tài)
??????? public static void NUM()
??????? {
??????????? Console.WriteLine("現(xiàn)在有幾條狗:" + Nom);? //用靜態(tài)輸出打印的狗
??????? }
??????? public Dog(string name) : base(name)
??????? {
??????????? ++Nom; //每賦值一個(gè)名字就加一條狗
??????????? if (XCW != null)? //判斷當(dāng)xcw不為空時(shí)還回給XCW新寵物
??????????? {
???????????????? XCW();
??????????? }
??????? }
??????? public override void speak()
??????? {
??????????? Console.WriteLine(NAME + "汪汪");
??????? }
??????? public void lsHappy<T>(T target)//where T:class //泛型方法? //約束只能用引用類(lèi)型所以int會(huì)報(bào)錯(cuò)
??????????? {
??????????????? Console.WriteLine("開(kāi)心"+target.ToString()); //就是將該對(duì)象變成字符串,例如你傳進(jìn)來(lái)一個(gè)Cat類(lèi)的對(duì)象cat,他就會(huì)將cat這個(gè)對(duì)象以字符串形式表現(xiàn)出來(lái)
??????????? }
???????? public override void MM()
??????? {
????????? Console.WriteLine("哈士奇萌萌大賽");
???????? }
??????? public delegate void XC(); //聲明事件
??????? public static event XC? XCW; //限制事件
??? }
??? public class Cat : Pet, skill, climb
??? {
??????? public void fishing()
??????? {
??????????? Console.Write("捕魚(yú)");
??????? }
??????? public void tree()
??????? {
??????????? Console.Write("爬樹(shù)");
??????? }
??????? public Cat(string name) : base(name)
??????? {
??????? }
??????? public override void speak()
??????? {
??????????? Console.WriteLine(NAME + "喵喵");
??????? }
??????????????? //用自定義方法可以轉(zhuǎn)換類(lèi)型括號(hào)是要轉(zhuǎn)換對(duì)象,必須不加保護(hù)級(jí)別不抽象
????????? public static? implicit operator Cat(Dog dog)
??????????? {
????????????? return new Cat(dog.NAME);
???????????? }
???????????????? public override void MM()
??????? {
????????? Console.WriteLine("無(wú)辜看著你");
???????? }
??? }
??? class Person //定義一個(gè)人的類(lèi)當(dāng)狗看見(jiàn)人開(kāi)心
??????? {
??????? }
??? public class Labrador : Dog,lDogLearn<SitDogCmd>? //泛型<>接受上文聲明的技能
??? {
??????????? public Labrador(string name):base(name)
??????????? {
??????????? }
????????????? public void Act(SitDogCmd cmd) //實(shí)現(xiàn)一個(gè)泛型接口
????????????? {
??????????? Console.WriteLine(cmd.GetCmd()); //輸出技能
????????????? }
??? }
??? public class KF? //定義一個(gè)顧客類(lèi)
??? {
??????? public void tz()
??????????? {
???????????? Console.WriteLine("有新的寵物來(lái)了");
???????????? }
???? }?????
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ces
{
??? public class Cage<T>
??? {
??????? T[] array;? //寵物
??????? int num;?? //聲明輸入寵物的數(shù)量
??????? readonly int Size;? //籠子數(shù)量
??????? public Cage(int n)
??????? {
??????????? Size = n; //賦值給籠子數(shù)量
??????????? num = 0;? //寵物初始為0
??????????? array = new T[Size]; //把籠子給寵物
??????? }
??????? public void PutIn(T pet)
??????? {
??????????? if (num < Size)
??????????? {
??????????????? array[num++] = pet;
??????????? }
??????????? else
??????????? {
??????????????? Console.WriteLine("籠子不夠,放不下");
??????????? }
??????? }
??????? public T TakeOut()? //取出寵物
??????? {
??????????? if (num > 0)
??????????? {
??????????????? return array[--num]; //取出一只就減一個(gè)
??????????? }
??????????? else
??????????? {
??????????????? Console.WriteLine("籠子是空的");
??????????????? return default(T);
??????????? }
??????? }
??? }
}
上把我看了在碼的泛型方法那簡(jiǎn)直崩潰
2019-03-19
這些代碼難道不該是一起跟著打的嗎,光下載下來(lái)有什么用。。。
2018-08-08
老師是按他自己講的所以沒(méi)有下載地方不過(guò)上面的是我看完老師碼完了所有課程的(注解我有的理解錯(cuò)誤)
2018-07-26
哪里下載?