結構
結構介紹
1、訪問修飾符 struct 結構名{}
2、結構不能定義默認的構造函數,但可以定義含有參數的構造函數
3、使用結構的方法與使用類的方法相同
何時使用結構
結構是一種輕量級的數據類型,適合用於表示佔用存儲空間小的數據類型
1、在邏輯上表示某個值,與基本類型相似
2、佔用內存小於16字節
3、不必頻繁轉爲引用類型
接口
接口介紹
1、是一種公共方法和屬性的集合
2、訪問修飾符 interface 接口名{}
3、接口中定義的屬性和方法都是公公的,不是繼承和私有的。在c#中定義接口時,不允許顯式指定接口成員的可訪問性,而且接口成員默認爲公有的。
4、接口中只能包含普通方法和屬性,而不能包含其他內容(如構造函數、變量等)
5、接口中的方法和屬性只有簽名部分,而沒有實現部分,甚至連方法名後面的{}也不能有
使用接口
1、當一個類實現多個接口時,中間用','隔開
2、接口可繼承接口
3、如果一個類繼承接口,則該類必須實現該接口的所有方法和屬性
顯示接口實現
1、在顯式實現接口時,類中對應於接口中的方法或屬性口有接口名做前綴。而且方法或屬性不允許有public、protected等訪問修飾符
2、當顯式實現接口時,類中用於實現接口的方法只能只能通過接口來調用,而不能通過類的實例來調用。
注意:
當要實現接口時,應優先使用普通的接口實現方式,除非有非常充分的理由,否則不要輕易使用顯式接口。
自動生成接口代碼框架
在vs.net中,將鼠標指針放在類之後的接口名上,在接口名上會出現一個藍色空心的小矩形,將鼠標放在小矩形上,會顯示一個灰色背景的按鈕,單擊按鈕,彈出相應菜單,點擊相應命令就可。
接口和抽象類的比較
當類從接口繼承時,相同的接口成員要在派生類中實現多次。而當類從抽象類中繼承時,派生類中公用的代碼可以放在抽象類中,從而在派生類中不必在編寫重複代碼