比Switch case 更高效的方法:字典(Dictionary) + 委托(delegate)
来源:互联网 发布:js判断是否获取到元素 编辑:程序博客网 时间:2024/06/06 07:44
Hello,我是KitStar
以下文章整理的不对。还请见谅
以下代码书写于Unity3D中。
众所周知,在C#中。一条switch语句允许测试一个变量在等于多个值的时的情况。每一个值作为一个case,去判断,当条件达成则执行。 并且,被测试的变量会对每一个case进行检查,直至找到符合条件的。 由于它是以遍历的方式一个个对比。当数据小的时候影响不大。但当数据达到一定程度的时候就会影响运算速度,特别是在网络端实时获取数据的时候。 所以,将采取一下的方式去优化代替 Switch case语句。
字典(Dictionary) + 委托(delegate)
首先大家都知道字典(Dictionary)有着以健(Key):值(Value)成对的存储形式的数据类型。并且健必须是唯一的,而值可以是相同存在的。并且健和值的可以是任意类型存在的。 通常在访问的时候,可以采用,访问字典的健来获取它对应的值。 那么它的值是一个方法呢?我们是不是只要在获取的时候输入相应的健,就可以使用对应的方式。而不需要,一一去遍历去对比。那么同时也用到了委托。 逻辑就是这样,具体的实现过程不多说了。文采有限,唉,么文化,不知道怎么组织语言。所有,剩下的大家就看代码吧挺简单的。
using System.Collections;using System.Collections.Generic;using UnityEngine;public class lambdaTest : MonoBehaviour { //定义委托类 delegate float Operator(float number1,float number2); //定义字典 Dictionary<char,Operator> dict = new Dictionary<char, Operator>(); void Start () { //初始一个类型为Operator的加方法 Operator Jia = (x, y ) => { return x + y; }; //还可以给Jia方法附加绑定其他方法 Jia += jia; Operator jian = (x, y ) => { return x - y; }; Operator cheng = (x, y ) => { return x * y; }; Operator chu = (x, y ) => { return x / y; }; dict.Add('+',Jia); dict.Add ('-',jian); dict.Add ('*', cheng); dict.Add('/',chu); //这块就是调用时候了。直接通过字典中的‘+’健,访问到它对应的值。也就是Jia方法。 Debug.Log (dict['+'](3,5)); } float jia(float a,float b) { Debug.Log ("a :" + a + "b :" + b); return a+b; }}
阅读全文
0 0
- 比Switch case 更高效的方法:字典(Dictionary) + 委托(delegate)
- switch case 为何比if else 高效
- c++高效委托的实现(fast delegate---简单、高效、跨平台)
- c++高效委托的实现(fast delegate---简单、高效、跨平台)
- switch()case的用法
- delegate(委托)的用法
- 委托(Delegate)的详解
- 字典(dictionary)的设计
- Switch语句通常比一组嵌套的if语句更高效
- 【iOS-开发】:delegate(委托、代理)模式的设置方法
- 委托delegate与Dictionary实现action方法调用
- qt delegate委托 paint()方法
- 委托(Delegate)
- 委托(Delegate)
- 委托(Delegate)
- 委托(Delegate)
- 委托(Delegate)
- 委托(Delegate)
- 约瑟夫环
- ROW_NUMBER() OVER函数的基本用法(转)
- 解决$GLOBALS["HTTP_RAW_POST_DATA"]获取不到数据的问题
- OpenJ_POJ 1043
- tomcat配置及使用
- 比Switch case 更高效的方法:字典(Dictionary) + 委托(delegate)
- opencv鼠标选定感兴趣区域进行目标检测
- SSM中springMVC的概述:
- 程序员编程7+1条小贴士
- 在cmd中运行.py文件
- 网络编程(二)--UDP
- C#winform应用程序连接sql server数据库代码
- CSS笔记
- 容斥原理