c#之介面,依賴反轉,單元測試
阿新 • • 發佈:2020-06-17
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