C# c语言中逻辑树中的混合类型#

C# c语言中逻辑树中的混合类型#,c#,code-generation,lookup-tables,C#,Code Generation,Lookup Tables,我有一个丑陋的逻辑树,我正在寻找用表生成的代码替换它的方法。它基于以下几点进行分支: 一个列表的长度表明多态性是一个好主意,但在我的例子中,它会将关注点和代码混为一谈(而且无论如何也不适合生成)。另一个建议的解决方案(IDictionary)可能有效,但看起来有点难看 有人有什么建议吗。一种方法是连接类型名(例如用冒号分隔),然后按字符串切换,例如 switch(colon_separated_typenames(list)) { case "int:int": //foo ca

我有一个丑陋的逻辑树,我正在寻找用表生成的代码替换它的方法。它基于以下几点进行分支:

  • 一个
    列表的长度表明多态性是一个好主意,但在我的例子中,它会将关注点和代码混为一谈(而且无论如何也不适合生成)。另一个建议的解决方案(
    IDictionary
    )可能有效,但看起来有点难看


    有人有什么建议吗。

    一种方法是连接类型名(例如用冒号分隔),然后按字符串切换,例如

     switch(colon_separated_typenames(list)) {
       case "int:int": //foo
       case "double:String:double": //bar
     }
    

    如果你现在可以发布它的外观,这会有所帮助。想想你在每日WTF上看到的和你试图避免使用的东西之间的逻辑树,这是正确的。我在寻找一些通用的解决方案,所以如果你想要更多的解决方案,你就要回答一个不同的问题。不错而且干净的+1,但是字符串构建和(值得怀疑的)开关有点慢。我想,只要在前期多做一点努力,我就可以不需要任何分配。