国产高清在线免费观看-国产高清在线免费无码-国产高清在线男人的天堂-国产高清在线视频-国产高清在线视频精品视频-国产高清在线视频伊甸园

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

[點晴永久免費OA]C#接口的實現

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

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

interface IMyInterface

{

//Interface member.

}

接口成員的定義與類成員的定義相似,但具有幾個重要的區別:

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

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

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

【4】、不能用關鍵字static、virtual、abstract或sealed來定義接口成員。

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

但要隱藏從基接口中繼承的成員,可以用關鍵字new來定義它們,例如:

interface IMyBaseInterface

{

        void DoSomething();

}

interface IMyDerivedInterface:IMyBaseInterface

{

        new void DoSomething();

}

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

在接口中定義的屬性可以定義訪問塊get和set中的哪一個能用于該屬性(或將它們同時用于該屬性),例如:

interface IMyInterface

{

        int MyInt{get;set;}

}

其中int屬性MyInt有get和set存取器。對于訪問級別有更嚴格限制的屬性來說,可以省略它們中的任一個。

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

接口沒有指定應如何存儲屬性數據。接口不能指定字段,例如用于存儲屬性數據的字段。最后,接口與類一樣,可以定義為類的成員(但不能定義為其他接口的成員,因為接口不能包含類型定義)。

在類中實現接口

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

public interface IMyInterface

{

        void  DoSomething();

         void  DoSomethingElse();

}

public interface MyClass:IMyInterface

{

        public void  DoSomething(){};

        public void  DoSomethingElse(){};

}

可使用關鍵字virtual或abstract來實現接口成員,但不能使用static或const。還可以在基類上實現接口成員,例如:

public interface IMyInterface

{

        void  DoSomething();

        void  DoSomethingElse();

}

public class MyBaseClass

{

        public void  DoSomething(){}

}

public class MyDerivedClass:MyBaseClass,IMyInterface

{

        public void DoSomethingElse(){};

}

繼承一個實現給定接口的基類,就意味著派生類隱式地支持這個接口,例如:

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(){};

}

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

 1、顯式實現接口成員

也可以由類顯式地實現接口成員。如果這么做,就只能通過接口來訪問該成員,不能通過類來訪問。隱式成員可以通過類和接口來訪問。

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

MyClass myObj=new MyClass();

myObj.DoSomething();

下面的代碼也是有效的:

MyClass myObj=new MyClass();

IMyInterface myInt=myObj;

myInt.DoSomething();

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

public class MyClass:IMyInterface

{

        void IMyInterface.DoSomething(){}

        public void  DoSomethingElse(){}

}

其中DoSomething()是顯示實現的,而DoSomethingElse()是隱式實現的。只有后者可以直接通過MyClass的對象實例來訪問。

 2、其他屬性存取器

如果實現帶屬性的接口,就必須實現匹配的get/set存取器。這并不是絕對正確的——如果在定義屬性的接口中只包含set塊,就可給類中的屬性添加get塊,反之亦然。但只有隱式實現接口時才能這么做。另外,大多數時候都想讓所添加的存取器的可訪問修飾符比接口中定義的存取器的可訪問修飾符更嚴格。因為按照定義,接口定義的存取器是公共的,也就是說,只能添加非公共的存取器。例如:

public interface IMyInterface

{

        int MyIntProperty{get;}

}

public class MyBaseClass:IMyInterface

{

        public int MyIntProperty{get;protected set;}

}

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



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

主站蜘蛛池模板: 插B内射18免费视频 插吧插吧综合网 | 亚洲色偷偷综合亚洲av伊人蜜桃 | 国产又爽又猛又粗的A片 | 亚洲欧洲一区二区久久 | 亚洲免费网站观看视频 | 亚洲国产成人久久综合区 | 无码大潮喷水在线观看 | 日韩麻豆国产精品 | 一本一道av无码中文字幕 | 精品久久久久久中文字幕人妻最新 | 精品女同一区二区三区免费站 | 亚洲区一区二区 | 国产在线乱码一区二区三区 | 免费无码专区毛片高潮喷水 | 日本一本正道久久综合高清 | 亚洲成A人无码亚洲成WWW牛牛 | 午夜成人亚洲理论片在线观看 | 欧美一区二区三区红桃 | 国产性自爱拍偷在在线播放 | 无码动漫性爽xo视频在线观看 | 国产av一区二区三区天堂综合网 | 国产偷国产偷亚洲清高app | 欧美三级免费网站 | 国产亚洲日韩在线一区二区三区 | 熟妇人妻不卡中文字幕 | 午夜福利理论片在线观 | 少妇人妻大乳在线视频不卡 | 无码精品一区二区三区四区bd蓝光碟在线播放 | 国产毛片精品一区二区色欲 | 亚洲综合第一在线影视 | 国产色诱视频在线 | 夜夜高潮夜夜爽夜夜爱爱一区 | 桃花视频666| 亚洲妇女在现代城市街道上使用手机正版高清视频素材下载 | 国产色欲av一区二区三区麻豆 | 日韩人妻视频免费公开 | 日产精品卡二卡三卡四卡视 | 亚洲国产精品二区久久 | 无码av高清特级黄在线 | 国产毛多水多做爰爽爽爽 | 人妻熟人中文字幕一区二区 |