最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C#面向?qū)ο蠹夹g(shù)——接口、抽象、密封、迭代器、分部類、泛型-創(chuàng)新互聯(lián)

接口、抽象、迭代器跟java的說法差不多,所以只作簡單的解釋,主要通過實例簡單了解用法。

創(chuàng)新互聯(lián)2013年開創(chuàng)至今,先為通州等服務(wù)建站,通州等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為通州企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

接口:通過它可以實現(xiàn)多重繼承的功能。接口可以包含屬性、方法、索引器和事件,但只可以對其進行定義而不能賦值。

簡單聲明的接口:

interface IPeople{
    string Name{get;set;}
    void show();
}

使用Program類實現(xiàn)接口:

class Program : IPeople{
    string name="";
    public string Name{get{return name;} set{name=value;}}
    public show(){Console.Write("Name:"+Name);}
}

主程序,使用實例化Program對象:

Program pro = new Program();//實例化Program對象
IPeople ip = pro;//使用派生類對象實例化接口
ip.Name = "hello";//為派生類中的Name屬性賦值
ip.show();//調(diào)用派生類中方法顯示屬性值

上例通過實例化的接口對象訪問派生類中的屬性和方法。另外,接口還可以多重繼承,使用時通過( ,)分隔:

interface IPeople{
    string Name{get;set;}
}
interface IMan : IPeople{
    void sex();
}
class Program :IPeople,IMan{
    public void sex(){Console.Write("..."); }
}
//調(diào)用時:
IMan man = pro;
man.sex();

顯式調(diào)用接口成員(類實現(xiàn)兩個接口,兩個接口有相同的成員時,作為區(qū)分使用):

interface ICal1{
    int Add();
}
interface ICal2{
    int Add();
}
class Calculate : ICal1,ICal2{
    int ICal1.Add(){    //顯式接口成員實現(xiàn)
        int x = 10; int y = 20; return x+y;
    }
    int ICal2.Add(){
        int x = 10; int y = 20; int z = 30; return x+y+z;
    }
}
//調(diào)用時
Calculate cal = new Calculate();
ICal1 cal1 = cal;
Console.WriteLine(cal.Add());//同理可以使用接口繼承類ICal2的對象實例化接口

*********

抽象類和抽象方法:

只要有一個方法聲明為抽象方法,這個類也必須被聲明為抽象類。抽象類不能被密封。

抽象類聲明:

public abstract class Test{
    public int i;
    public void method();
    public abstract void abdMethod();//抽象方法
}

抽象類和抽象方法的使用:

public abstract class People{
    private string name="";
    public string Name{
       get{return name;} set{name = value;}
    }
    public abstract void show();//抽象方法
}
public class One :People{
    //重寫抽象類中輸出信息的方法
    public override void show(){Console.Write("...");}
}
//實現(xiàn)
One one = new One();//實例化派生類
People p = one;//使用派生類對象實例化抽象類
p.Name = "hello";//使用抽象類對象訪問抽象類中的姓名
p.show();//使用抽象類對象調(diào)用派生類中的方法

**********

密封類和密封方法:(為避免濫用繼承而提出來的)

密封類可以限制擴展性,如果密封了某個類,則其他類不能從該類中繼承(所以抽象類不能被密封);同理,密封的成員也如此。

密封類的聲明:

public sealed class SealedTest{}

密封方法:

密封方法只能用于對基類的虛方法進行實現(xiàn),并提供具體的實現(xiàn),所以,聲明密封方法時,sealed修飾符和override修飾符同時使用。

public class Base{
    public virtual void show(){//定義一個虛方法
        Console.WriteLine("這是基類中的虛方法");
    }
}
public sealed class Derive:Base{//從基類派生一個密封子類
//密封并重寫基類中的虛方法show()
    public sealed override void show(){
        base.show();//調(diào)用基類的虛方法
        Console.WriteLine("這是密封類中重寫后的方法");
    }
}

密封類和密封方法的使用:

public class People{
    public virtual void show(){}//虛方法
}
public sealed class Student{
    private string name ="";
    public string Name{get{return name;} set{name = value;}}
    //密封并重寫基類中的show()
    public sealed override void show(){
        Console.WriteLine("NAME: "+Name);
    }
}
//調(diào)用
Student stu = new Student();//實例化密封類對象
stu.Name = "hello";
stu.show();

迭代器:

用于返回相同類型的值的有序序列的一段代碼。迭代器代碼使用yield return 語句依次返回每個元素,yield break語句將終止迭代。返回類型必須是IEnumerable或IEnumerator中的一種。

創(chuàng)建迭代器:

public class Banks : IEnumerable
{
    string[] arr = { "item1", "item2", "item3", "item4" };
    public IEnumerator GetEnumerator()
    {
        for (int i = 0; i < arr.Length; i++)
        {
            yield return arr[i];
        }
    }
}
//調(diào)用
Banks banks = new Banks();
foreach (string str in banks)
{
    richTextBox1.Text += str + "\n";
}

**********

分部類:(直接舉例比較容易理解)

partial class Part{//分部類第一部分
    public int add(int a, int b){return a+b;}
}
partial class Part{//分部類第二部分
    public int sub(int a, int b){return a-b;}
}
//調(diào)用時。可以知道分部類其實各部分就是組成一個類
Part part = new Part();
part.add(1,2);part.sub(5,3);

********

泛型(和java的類似,所以只是舉例):

public class Manager{
    public static int Mana(T[] items, T item){//創(chuàng)建泛型方法
    }
}
//調(diào)用泛型方法
int i = Manager.Mana(new int[]{1,2} , 2);

實例——利用接口實現(xiàn)選擇不同的內(nèi)容

interface ISelect{
    void Speak(string str);
}
class Chinese :ISelect{
    public void Speak(".....");
}
class Foreign :ISelect{
    public void Speak(".....");
}

實例——通過重寫抽象方法實現(xiàn)多態(tài)性

class Animal{
    public string Run(){return "can run!";}
    public abstract string Sound();//聲明抽象方法
}
class Dog : Animal{
    public override string Sound(){
        return "Wang!";
    }
}
//該類通過多態(tài)性輸出動物的相關(guān)行為信息
public static class  AnimalClass{
    public static string AnimalSound(Animal an){
        return an.Sound();
    }
}
//在程序中調(diào)用時
Dog dog = new Dog();
AnimalClass.AnimalSound(dog);

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


分享文章:C#面向?qū)ο蠹夹g(shù)——接口、抽象、密封、迭代器、分部類、泛型-創(chuàng)新互聯(lián)
文章出自:http://fisionsoft.com.cn/article/cdggcs.html