C# 委托:把方法组合到一个数组中使用

C# 委托:把方法组合到一个数组中使用

2016年04月28日 16:12:55 kernel_main 阅读数 1129

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

namespace ConsoleApplication1
{
    class MathOperations
    {
        public static double MultiplyByTwo(double value)
        {
            return value * 2;
        }

        public static double Square(double value)
        {
            return value * value;
        }
    }

    delegate double DoubleOpt(double x);

    class Program
    {
        public enum TimeOfDay
        {
            Morning = 0,
            Afternoons = 1,
            Evening = 2
        }

        static void Main(string[] args)
        {
            DoubleOpt[] opt = {
                                  MathOperations.MultiplyByTwo,
                                  MathOperations.Square
                              };

            for (int i = 0; i < opt.Length;i++ )
            {
                System.Console.WriteLine("Using Options [{0}]:",i);
                ProcessAndDisplayNumber(opt[i], 2.0);
                ProcessAndDisplayNumber(opt[i], 7.94);
                ProcessAndDisplayNumber(opt[i], 1.414);
                Console.WriteLine();
            }
        }

        static void ProcessAndDisplayNumber(DoubleOpt opt,double value)
        {
            double result = opt(value);
            System.Console.WriteLine("Value is {0}, result of operation is {1}",
                value,result);
        }
    }
}

原文地址:https://www.cnblogs.com/Siny0/p/11155855.html

时间: 2024-10-10 10:32:04

C# 委托:把方法组合到一个数组中使用的相关文章

C++_第七章函数的基本知识_求阶乘的子函数_ 函数参数类型为数组_ 求数组内所有元素和、部分元素和的方法_实现了先从键盘输入到一个数组中,再用for循环取读出数组中的元素 for循环也可以用break来结束循环的

/* 第七章函数的基本知识 */ /*01)c++对于返回值有一定的限制:可以是常量.变量.指针.结构对象或表达式,但不可以是数组02)c++返回数组的方法:将数组作为结构会对象组成部分来返回03)函数遇到return则结束该函数04)如果一个函数的两房额参数类型相同,则必须分别制定每个参数的类型,而不能像声明常规变量那样,将声明组合在一起05)*/ //本代码注意double类型的写法以及double和int类型数据的转换 1 #include <iostream> 2 3 void che

程序员面试100题之十:快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值(转)

能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解. 假如有如下的两个数组,如图所示: 5,6,1,4,7,9,8 给定Sum= 10 1,5,6,7,8,9 给定Sum= 10 分析与解法 这个题目不是很难,也很容易理解.但是要得出高效率的解法,还是需要一番思考的. 解法一 一个直接的解法就是穷举:从数组中任意取出两个数字,计算两者之和是否为给定的数字. 显然其时间复杂度为N(N-1)/2即O(N^2).这个算法很简

【学】从一个数组中找出重复最多的元素,并统计重复个数

通过json,将数组中的值都传给json中的键,利用json中的键是不能重复的性能,同时如果遇到重复的键,那就让这个键的值自增1,这样就能统计出重复次数 上面的方法可以得出一个json,但是还不够,因为无法比较json里的键或者值的大小,就要再将Json里的每组数据组成一个个小的json装到一个数组中,将统计的数量赋给每个json中的值,利用数组的sort的比较函数进行排序即可 function myMaxElement(arr){ var json = {}; for (var i=0; i<

求解一个数组中连续元素最大值

第一种实现是以O(N3) 即以n的三次方实现的,这个算法很简单,想法特别明显 第二种以O(N2) 即以n的二次方实现,算法简单,但是仍然不够好 第三种 O(N*log(N)) ,以n乘以log(N),采取分治法解决问题,当然也采取了递归的思想. 第四种O(N),这个方法就无敌了,线性时间,如果数组是在磁盘或者磁带上面,只需要读取数组,不需要存储在内存上面(联机算法),此算法简洁高效,最理想的算法 5 int f1(int p[],int left,int right){ 6 int tmp; 7

18 如何从一个数组中移除重复的元素

两种方法 (1) 使用LINQ (2) 使用List static void RemoveDups(string[] myStringArray) { // LINQ string[] str = myStringArray.Distinct().ToArray(); // Array to List to Array List<String> myStringList = new List<string>(); foreach (string s in myStringArray

JS案例之8——从一个数组中随机取数

近期项目中遇到一个需求,从一个列表中随机展示列表的部分内容,需求不大,JS也非常容易实现.主要是运用到了Math对象的random方法,和Array的splice方法. 思路是先新建一个数组,存放所有的列表,然后算出随机数,从数组中取出这个随机索引对应的值,然后组成一个随机数组. 源代码如下: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" Conten

C# 一个数组中是否包含某个值 总结

总结N种方法,待补充完善 一. Array.IndexOf int id = Array.IndexOf(string[],"要查找的值"); if(id!=-1) 或写成 if(Array.IndexOf(string[],"要查找的值") >= 0) 二.IList ((IList)string[]).Contains"要查找的值") 三.Array.Exists if (Array.Exists(SetSelectIds, eleme

C#获取一个数组中的最大值、最小值、平均值

C#获取一个数组中的最大值.最小值.平均值 1.给出一个数组 1 int[] array = new int[] { 1,2,4,3,0,-1,34,545,2,34}; 2.数组Array自带方法 本身是直接可以调用Min(),Max(),Average()方法来求出 最小值.最大值.平均值 1 Console.WriteLine("--------------Array自身方法-----------------"); 2 Console.WriteLine("Min:{0

4.产生10个1-100的随机数,并放到一个数组中 (1)把数组中大于等于10的数字放到一个list集合中,并打印到控制台。 (2)把数组中的数字放到当前文件夹的numArr.txt文件中

package cn.it.text; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; /* * 4.产生10个1-100的随机数,并放到一个数组中 (1)把数组中大于等于10的数字放到一个list集合中,并打印到控制台. (2)把数组中的数字放到当前文件夹的number.txt文件中 */ public class Test4 { public static void main