iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 27
0
自我挑戰組

初心者學C#系列 第 27

Day 27:C#的介面 (◍•ᴗ•◍)❤

  • 分享至 

  • xImage
  •  

※以下內容皆是新手撰寫,內容可能不完全正確

可愛顏文字30天的挑戰接近尾聲,再撐一下RRR(跟自己講的)
怎麼感覺這幾天的C#觀念都偏抽象,超難理解ㄉ嗚嗚嗚QQ

C#中的 介面(interfaces) 定義是所有繼承介面的類別必須遵守的語法合約(聽起來有夠抽象的);介面負責定義「做什麼」,而類別則負責定義「怎麼做」。
介面定義財產、方法及事件(以上皆為介面成員);介面只負責宣告成員,給衍生類別提供基本的架構,而定義成員的工作由衍生的類別來做。總結,介面扮演的是抽象的結構,不是真正實施、做事的那個。
※某種意義上,抽象類做的事情差不多,只是用於宣告方法較少的情況(由類基宣告並由衍生類別實施)。
※接在interface後面的介面名稱依慣例,皆用大寫i開頭(I) :D

介面的宣告用 interface關鍵字(interface keyword) ,跟類別的宣告很像。都到這邊了,應該對於各種不同東西的宣告有點概念了(記不起來也沒差XDD)。介面敘述預設的存取權限是public,格式像下面這樣的例子:

public interface IsomeInterface{
void someMember();
int someInteger();
double someDouble();
}
應用interface的方法:
using System;
namespace CubeApplication
{
    public interface IsomeInterface
    {
        int someInteger();
    }
    public class Inter : IsomeInterface
    {
        private int yeet;

        public Inter()
        {
            yeet = 0;
        }
        public Inter(int b)
        {
            yeet = b;
        }
        public int someInteger()
        {
            return yeet;
        }
    }
    class CC
    {
        Inter x = new Inter(9487);  
    }
    }

interface關鍵字範圍裡面的成員在後面都必須要實施,不然會出現error。
介面的部分先講到這邊,之後可能還會在更新的時候做一些補充。
下一篇的主題是每支程式都看得到的名稱空間(namespaces)。

參考資料:
(a) Tutorialspoint; C# - Interfaces
https://www.tutorialspoint.com/csharp/csharp_interfaces.htm
(b) Microsoft; 介面 (C#程式設計手冊)
https://docs.microsoft.com/zh-tw/dotnet/csharp/programming-guide/interfaces/


上一篇
Day 26:C#的運算子多載 (。・ω・。)ノ♡
下一篇
Day 28:C#的名稱空間 (♡´❍`♡)*✧ ✰ 。*
系列文
初心者學C#30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言