1. 程式人生 > WINDOWS開發 >c#之介面,依賴反轉,單元測試

c#之介面,依賴反轉,單元測試

1.介面

弱型別語言允許將一塊記憶體看做多種型別。比如直接將整型變數與字元變數相加。C and C++ 是靜態語言,也是弱型別語言;Perl and PHP 是動態語言,但也是弱型別語言。
強型別語言在沒有強制型別轉化前,不允許兩種不同型別的變數相互操作。Java、C# 和 Python 等都是強型別語言。

下面程式碼簡單介紹了使用介面的例子,因為c#是強型別語言,所以如果Sum()方法的引數不是IEnumerable的話,就只能是int[]或者ArryList,這種情況下,如果想num與arrayList物件都用sum和avg方法的話就得每個都寫一遍,但是因為陣列和ArrayList都繼承了IEnumerable,所以可以直接用它做引數接收。

 class Program
    {
        static void Main(string[] args)
        {
            int[] num = new int[] { 1,2,3,4,5 };
            ArrayList arrayList = new ArrayList { 1,5 };
            Console.WriteLine(Sum(num));
            Console.WriteLine(Avg(num));

            Console.WriteLine(Sum(arrayList));
            Console.WriteLine(Avg(arrayList));

            Console.ReadKey();
        }
        
static int Sum(IEnumerable num) { int sum = 0; foreach(var n in num) { sum += (int)n; } return sum; } static double Avg(IEnumerable num) { int sum = 0; double count = 0;
foreach (var n in num) { sum += (int)n; count++; } return sum/ count; } }

結果:

15
3
15
3