vb.net替代在处理对象值时选择case

时间:2011-05-26 21:39:40

标签: asp.net vb.net select case

嘿所有,我能够通过SELECT CASE语句来做到这一点,但是我总是试图改进我的代码编写,并且想知道是否有更好的方法。这是场景:

每个文档上都有x个自定义字段。 有多少文件 然而,只有21个不同的自定义字段,但根据表单,它们显然可以有不同的组合。

所以这就是我所做的,我创建了一个名为CustomFields的对象,如下所示:

 Private Class CustomFields
    Public agentaddress As String
    Public agentattorney As String
    Public agentcity As String
    Public agentname As String
    Public agentnumber As String
    Public agentstate As String
    Public agentzip As String
    ... more fields here ....
End Class`

然后我继续将我从用户获得的值分配给每个字段,如下所示:

Set All of Our Custom Fields Accordingly
        Dim pcc As New CustomFields()
        pcc.agentaddress = agent.address1
        pcc.agentattorney = cplinfo.attorneyname
        pcc.agentcity = agent.city
        pcc.agentname = agent.agencyName
        pcc.agentnumber = agent.agentNumber
        pcc.agentstate = agent.state
        pcc.agentzip = agent.zip ....other values set to fields etc.

现在这个想法是基于文档的组合字段,我们需要分配与该自定义字段的值匹配的值。因此,如果表单只需要agentaddress和agentcity:

'Now Let's Loop Through the Custom Fields for This Document
        For Each cf As vCustomField In cc
            Dim customs As New tblCustomValue()

            Select Case cf.fieldname
                Case "agentaddress"
                    customs.customfieldid = cf.customfieldid
                    customs.icsid = cpl.icsID
                    customs.value = pcc.additionalinfo
                Case "agentcity"
                    customs.customfieldid = cf.customfieldid
                    customs.icsid = cpl.icsID
                    customs.value = pcc.additionalinfo
End Select

            _db.tblCustomValues.InsertOnSubmit(customs)
            _db.SubmitChanges()

这样可行,但是我们将来最终可能会有100个字段,所以有一种方法以某种方式“EVAL”(是的,我知道在vb.net中不存在)cf.fieldname并找到它的相应值在CustomFields对象中?

尝试编写更高效的代码并在此处寻找一些头脑风暴。希望我的代码和描述有意义。如果它不让我知道,我会碰到我的头撞墙,再试一次。

1 个答案:

答案 0 :(得分:1)

如果我正确地阅读了您的问题,那么当您不使用该字段时,您将尝试避免设置字段的值。如果是这样,我会建议你继续在这种情况下将字段设置为空。