狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

[點(diǎn)晴永久免費(fèi)OA]C#接口的實(shí)現(xiàn)

admin
2023年4月13日 8:34 本文熱度 1311

接口的定義方式與類相似,使用的代碼如下:

interface IMyInterface

{

//Interface member.

}

接口成員的定義與類成員的定義相似,但具有幾個(gè)重要的區(qū)別:

【1】、不允許使用訪問(wèn)修飾符(public、private、protected或internal),所有接口成員都是隱式公共的。

【2】、接口成員不能包含代碼體。

【3】、接口不能定義字段成員。

【4】、不能用關(guān)鍵字static、virtual、abstract或sealed來(lái)定義接口成員。

【5】、類型定義成員是禁止的。

但要隱藏從基接口中繼承的成員,可以用關(guān)鍵字new來(lái)定義它們,例如:

interface IMyBaseInterface

{

        void DoSomething();

}

interface IMyDerivedInterface:IMyBaseInterface

{

        new void DoSomething();

}

其方式與隱藏繼承的類成員的方式一樣。

在接口中定義的屬性可以定義訪問(wèn)塊get和set中的哪一個(gè)能用于該屬性(或?qū)⑺鼈兺瑫r(shí)用于該屬性),例如:

interface IMyInterface

{

        int MyInt{get;set;}

}

其中int屬性MyInt有g(shù)et和set存取器。對(duì)于訪問(wèn)級(jí)別有更嚴(yán)格限制的屬性來(lái)說(shuō),可以省略它們中的任一個(gè)。

注意:這個(gè)語(yǔ)法類似于自動(dòng)屬性,但自動(dòng)屬性是為類(而不是接口)定義的,自動(dòng)屬性必須包含get和set存取器。

接口沒(méi)有指定應(yīng)如何存儲(chǔ)屬性數(shù)據(jù)。接口不能指定字段,例如用于存儲(chǔ)屬性數(shù)據(jù)的字段。最后,接口與類一樣,可以定義為類的成員(但不能定義為其他接口的成員,因?yàn)榻涌诓荒馨愋投x)。

在類中實(shí)現(xiàn)接口

實(shí)現(xiàn)接口的類必須包含該接口所有成員的實(shí)現(xiàn)代碼,且必須匹配指定的簽名(包括匹配指定的get和set塊),并且必須是公共的。例如:

public interface IMyInterface

{

        void  DoSomething();

         void  DoSomethingElse();

}

public interface MyClass:IMyInterface

{

        public void  DoSomething(){};

        public void  DoSomethingElse(){};

}

可使用關(guān)鍵字virtual或abstract來(lái)實(shí)現(xiàn)接口成員,但不能使用static或const。還可以在基類上實(shí)現(xiàn)接口成員,例如:

public interface IMyInterface

{

        void  DoSomething();

        void  DoSomethingElse();

}

public class MyBaseClass

{

        public void  DoSomething(){}

}

public class MyDerivedClass:MyBaseClass,IMyInterface

{

        public void DoSomethingElse(){};

}

繼承一個(gè)實(shí)現(xiàn)給定接口的基類,就意味著派生類隱式地支持這個(gè)接口,例如:

public interface IMyInterface

{

        void  DoSomething();

        void  DoSomethingElse();

}

public class MyBaseClass:IMyInterface

{

        public virtual void  DoSomething(){};

        public virtual void  DoSomethingElse(){};

}

public class MyDerivedClass:MyBaseClass

{

        public override void  DoSomething(){};

}

顯然,在基類中把實(shí)現(xiàn)代碼定義為虛擬,派生類就可以替換該實(shí)現(xiàn)代碼,而不是隱藏它們。如果要使用new關(guān)鍵字隱藏一個(gè)基類成員,而不是重寫(xiě)它,則方法IMyInterface.DoSomething()就總是引用基類版本,即使通過(guò)這個(gè)接口來(lái)訪問(wèn)派生類,也是這樣。

 1、顯式實(shí)現(xiàn)接口成員

也可以由類顯式地實(shí)現(xiàn)接口成員。如果這么做,就只能通過(guò)接口來(lái)訪問(wèn)該成員,不能通過(guò)類來(lái)訪問(wèn)。隱式成員可以通過(guò)類和接口來(lái)訪問(wèn)。

例如,如果類MyClass隱式地實(shí)現(xiàn)接口IMyInterface的方法DoSomething(),如上所述,則下面的代碼就是有效的:

MyClass myObj=new MyClass();

myObj.DoSomething();

下面的代碼也是有效的:

MyClass myObj=new MyClass();

IMyInterface myInt=myObj;

myInt.DoSomething();

另外,如果MyDerivedClass顯示地實(shí)現(xiàn)DoSomething(),就只能使用后一種技術(shù)。其代碼如下:

public class MyClass:IMyInterface

{

        void IMyInterface.DoSomething(){}

        public void  DoSomethingElse(){}

}

其中DoSomething()是顯示實(shí)現(xiàn)的,而DoSomethingElse()是隱式實(shí)現(xiàn)的。只有后者可以直接通過(guò)MyClass的對(duì)象實(shí)例來(lái)訪問(wèn)。

 2、其他屬性存取器

如果實(shí)現(xiàn)帶屬性的接口,就必須實(shí)現(xiàn)匹配的get/set存取器。這并不是絕對(duì)正確的——如果在定義屬性的接口中只包含set塊,就可給類中的屬性添加get塊,反之亦然。但只有隱式實(shí)現(xiàn)接口時(shí)才能這么做。另外,大多數(shù)時(shí)候都想讓所添加的存取器的可訪問(wèn)修飾符比接口中定義的存取器的可訪問(wèn)修飾符更嚴(yán)格。因?yàn)榘凑斩x,接口定義的存取器是公共的,也就是說(shuō),只能添加非公共的存取器。例如:

public interface IMyInterface

{

        int MyIntProperty{get;}

}

public class MyBaseClass:IMyInterface

{

        public int MyIntProperty{get;protected set;}

}

如果將新添加的存取器定義為公共的,那么能夠訪問(wèn)實(shí)現(xiàn)該接口的類的代碼也可以訪問(wèn)該存取器。但是,只能訪問(wèn)接口的代碼就不能訪問(wèn)該存取器。



該文章在 2023/4/13 8:34:02 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved