C#介面


介面是一種為所有繼承介面的類定義需要遵循的語法約定。介面定義了語法約定的「是什麼」部分,派生類定義了語法約定的「如何實現」部分。

介面定義屬性,方法和事件,它們是介面的成員。 介面只包含成員的宣告。 派生類負責定義和實現成員。介面通常有助於為派生類提供遵循的標準結構。

抽象類在某種程度上起著相同的作用,但是,當基礎類別只有少數方法宣告並且由派生類實現時,才會考慮使用抽象類。

宣告介面

介面使用interface關鍵字宣告。 它類似於類宣告。 預設情況下,interface語句是公開的。 以下是介面宣告的範例:

public interface ITransactions
{
   // interface members
   void showTransaction();
   double getAmount();
}

範例

以下範例演示了以上所述介面的實現:

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System;

namespace InterfaceApplication
{
    public interface ITransactions
    {
        // interface members
        void showTransaction();
        double getAmount();
    }

    public class Transaction : ITransactions
    {
        private string tCode;
        private string date;
        private double amount;
        public Transaction()
        {
            tCode = " ";
            date = " ";
            amount = 0.0;
        }

        public Transaction(string c, string d, double a)
        {
            tCode = c;
            date = d;
            amount = a;
        }

        public double getAmount()
        {
            return amount;
        }

        public void showTransaction()
        {
            Console.WriteLine("Transaction: {0}", tCode);
            Console.WriteLine("Date: {0}", date);
            Console.WriteLine("Amount: {0}", getAmount());
        }
    }
    class Tester
    {
        static void Main(string[] args)
        {
            Transaction t1 = new Transaction("1001", "8/10/2017", 578998.00);
            Transaction t2 = new Transaction("1002", "9/10/2018", 5471980.00);
            t1.showTransaction();
            t2.showTransaction();
            Console.ReadKey();
        }
    }
}

當編譯和執行上述程式碼時,會產生以下結果:

Transaction: 1001
Date: 8/10/2017
Amount: 578998
Transaction: 1002
Date: 9/10/2018
Amount: 5471980