我正处于在.Net中创建MP4标记解析器的最后阶段.对于那些有标记音乐经验的人,您会发现平均有30个左右的标签.如果测试了不同类型的循环,似乎带有Const值的switch语句似乎是关于以二进制方式捕获标记的方法.
这个开关允许我搜索二进制文件,而不需要知道标签的存储顺序,或者是否有一些不存在,但我想知道是否有人会反对使用switch语句来处理这么多条件.
任何见解都非常感谢.
编辑:有人认为我现在应该补充说,在讨论这个函数是递归的时候,我应该提取这个条件并将数据传递给我可以杀死的方法吗?
Mar*_*ers 23
它可能与开关一起正常工作,但我认为你的功能会变得很长.
解决此问题的一种方法是为每个标记类型创建一个处理程序类,然后在字典中使用相应的标记注册每个处理程序.当您需要解析标记时,您可以在字典中查找应该使用哪个处理程序.
kem*_*002 10
就个人而言,如果必须,我会这样做.switch语句比If/Else语句更容易阅读(并且您的大小将针对您进行优化).
这是一个相关的问题.请注意,接受的答案是错误的答案.
在C#中使用if/else和switch-case之间是否有任何显着差异?
另一个选项(Python启发)是一个字典,它将标记映射到lambda函数,或事件,或类似的东西.这需要一些重新架构.
| 归档时间: |
|
| 查看次数: |
991 次 |
| 最近记录: |