C#——委托(delegate)DEMO
生活随笔
收集整理的這篇文章主要介紹了
C#——委托(delegate)DEMO
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
源代碼
using System; using System.Collections.Generic;namespace Homework2 {class Delegates{//創建委托類型public delegate bool NumberPredicate(int number);static void Main(string[] args){Random rd = new Random();int[] numbers = new int[15];for (int i = 0; i < numbers.Length; i++)numbers[i] = rd.Next(1, 100);Console.WriteLine("原始數組:");Array.ForEach(numbers, Console.WriteLine);//生成委托實例NumberPredicate evenPredicate = IsEven;//任意選擇一個值,利用委托變量來判斷該值是否為偶數//[--a--]Console.WriteLine("利用委托變量判斷是否偶數: {0}",evenPredicate(numbers[0]) );//選出偶數//[--b--]int[] evenNumbers = FilterArray(numbers, evenPredicate);//描述并輸出DisplayList("numbers數組中的偶數有 : ", evenNumbers);//選出素數并輸出//[--c--]//生成委托實例NumberPredicate primePredicate = IsPrime;int[] primeNumbers = FilterArray(numbers, primePredicate);//描述并輸出DisplayList("numbers數組中的偶數有 : ", primeNumbers);}//選擇滿足predicate的數組元素private static int[] FilterArray(int[] intArray, NumberPredicate predicate){//可以運用動態數組List的知識。也可以寫兩個循環,先得到結果數組長度,再生成數組//[--d--]List<int> list = new List<int>();for (int i = 0; i < intArray.Length; i++) {if (predicate(intArray[i])) {list.Add(intArray[i]);}}return list.ToArray();}//判斷是否偶數private static bool IsEven(int number){return (number % 2 == 0);}//判斷是否素數private static bool IsPrime(int number){//[--e--]for (int i = 2; i <= Math.Sqrt(number); i++) { if (number % i == 0){return false;}}return true;}//打印description,并輸出數組元素private static void DisplayList(string description, int[] list){Console.WriteLine(description);foreach (int i in list){Console.Write($"{i}\t");}Console.WriteLine();}}}運行結果?
總結
以上是生活随笔為你收集整理的C#——委托(delegate)DEMO的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vue——请求转发配置解决方案
- 下一篇: C#——事件(Event)DEMO[闻鸡