C#接口的理解

 

 

首先接口的語法定義:
接口用來描述一種程序的規定,接口描述可屬於任何類或結構的一組相關行爲。實現接口的類或結構要與接口的定義嚴格一致。接口可由方法、屬性、事件、索引器或這4種成員類型的任何組合構成。接口不能包含字段。接口成員一定是公共的。

注意事項:

1、接口名稱必須使用大寫字母“I”開頭,如Icompute,IChoose。

2、接口的訪問修飾符可以選擇使用,但是接口的方法前不能添加任何訪問修飾符,它是隱式公開的。
3、接口中可以聲明索引器,屬性和方法,但不能包含字段,構造函數和常量等。
4、接口不能實現任何方法,屬性和索引器。
5、接口中不能包含構造函數。
6、在定義方法時,只要給出返回類型,名稱和參數列表,用分號結束即可。

除了上面的定義外,在實際的項目中往往會迷茫,什麼時候用接口,怎麼用能夠讓架構和代碼更合理,都需要一次次的思考和踩坑。有些時候,不要爲了用接口而用接口,說出來我用接口了,感覺很高大上,最後發現接口沒有實際意義,反而增加的代碼量。

個人理解接口的作用分三個:(記錄更多是爲了加深印象,自己的理解也是網上查看了寫資料後,總結的,肯定有不足的,望指正)

1.是對具有公共特性或行爲的類的描述,如下面這樣:

例子:我要寫一個打印程序,但是面臨的問題是必須使用不同的打印機,有HP的,IBM的、Epsom的等等。但是針對每一個打印機的程序只有2個必須要用到的函數,Print(),PrintPreview(),這兩個函數不同的打印機裏面的具體實現代碼是不一樣的,但是從主程序的角度來看是無所謂的,因爲主程序只是要調用一下Print和Print……。

不過這種例子,有點理想化,實際中很少有這種情況

2.是對一些類需要添加一定的約束或必須要實現的屬性或方法,如下面這樣:

我需要如果繼承接口的類,必須有name屬性,而不是內容一樣,但卻不同名字的Name、UserName什麼的

3.團隊分工開發時,遇到需要調用其他人的方法,但還沒完成時,可以先定義接口使用,後面讓對方繼承並實現

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章