• C#笔记 利用XML文件构建反射表机制


          在设计程序时,无论是界面或是后台代码,我们通常都想留给用户一个较为简单的接口。而我在参与封装语音卡开发函数包的时候,发现各种语音卡的底层函数的接口都是各种整形变量标记值,使用起来极为不变。于是就理解了前辈所写的代码中,利用XML构建反射表机制的初衷。下面我就以某一种语音卡所能兼容的语音格式为例,将反射表机制的原理做个示范。

          语音卡的底层开发函数中,放音和录音函数的参数都是很多而且不易理解和记忆的。以语音格式为例,假如a率的标记值是6,u率的标记值是7,……,一般所能兼容的语音格式为10多个。如果我们选用整形变量来做标记语音格式的参数,那么我们大概就有两种选择:1.要么我们把这种对应关系生记下来,2.要么我们在调用函数时去查一下对照表,而这两种方式,都需要做不必要的投入。

          这时反射表的优势就表现出来了,下面看看例子:

    //先做一个语音格式的枚举,方便用户调用:

    Code

    //这是一个语音格式类,用于填充语音格式对照表

    Code

    //编写一个方法,用来演示语音格式对照表的使用,具体使用方法类似但要视情况而定

    Code

    //最后贴出测试用的Main函数

    Code

    //最后给出测试用的XML文件:

    Code

     //输出结果:

    用户选定项:a率;该选项的配置值为:6

          这种处理方法,可以在许多方面得到应用。例如在语音卡的事件处理过程中,诸如外拨事件、放音事件及录音事件等操作,在这种过程性的事件响应中,都需要利用反射机制将通道状态来输出。

          

  • 相关阅读:
    Redis Linux版安装详解
    cdh-hbase用户无法执行命令
    异常-java.util.concurrent.TimeoutException: Futures timed out after [100000 milliseconds]
    异常-Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: user=hdfs, access=WRITE, inode="/hbase":root:supergroup:drwxr-xr-x
    【异常】Maxwell异常 Exception in thread "main" net.sf.jsqlparser.parser.TokenMgrError: Lexical error at line 1, column 596. Encountered: <EOF> after : ""
    【异常】jps6432 -- process information unavailable
    异常-Exception in thread "main" net.sf.jsqlparser.parser.TokenMgrError: Lexical error at line 1, column 596. Encountered: <EOF> after :
    【异常】java.sql.SQLException: Could not retrieve transaction read-only status from server Query
    【异常】ser class threw exception: java.sql.SQLException: The last packet successfully received from the server was 39,444 milliseconds ago. The last
    storedownloadd占用cpu高
  • 原文地址:https://www.cnblogs.com/gb2013/p/1588375.html
Copyright © 2020-2023  润新知