机房收费系统中-枚举使用

      在机房收费系统中,B层中做了好多的判断,每个判断都会返回一个结果作为信号给U层,如果用已有的Boolean值得话,就只有True 或 false 两种结果,然后我就用了返回字符串的方法,如下代码:

 Public Function Register(newCard As ManagerE.CardEntity, newStu As ManagerE.StudentEntity) As String

        Dim MyCIFD As New ManagerD.CardInfoDAL
        Dim MySIFD As New ManagerD.StuInfoDAL

        If IsCardExist(newCard.cardNo) = True Then '判断射频卡是否已经注册
            Register = "CardExsit"
        Else
            If IsStuExist(newStu.studentNo) Then '判断持卡学生是否已经注册
                MyCIFD.AddCardInfo(newCard)
                Register = "StuExist"
            Else
                MyCIFD.AddCardInfo(newCard) '讲符合条件的注册添加到数据库
                MySIFD.AddStuInfo(newStu)
                Register = "Succeed"
            End If
        End If
    End Function

  但是在判断得到返回结果时,必须准确写出字符串的每一个字符才可以,用起来操作性比较差。看到其他人的博客知道,好多人都是用的抛异常的方法反馈给U层信息的。这种思路,虽然能实现预定的效果,但是跟我的源代码相差甚远,如果用枚举类型的话,因为跟Boolean的效果差不多,应该符合我的思路,接下来去实践一下,代码还差点,马上呈现...

  首先在构建一个类盛放这种枚举类型

Public Class DataEntity
    Enum status

        CardExist
        StudentExist
        Succeed

    End Enum
End Class
      之后B 层的登录方法修改为

 Public Function Register(newCard As ManagerE.CardEntity, newStu As ManagerE.StudentEntity) As ManagerE.DataEntity.status

        Dim MyCIFD As New ManagerD.CardInfoDAL
        Dim MySIFD As New ManagerD.StuInfoDAL
        If IsCardExist(newCard.cardNo) = True Then '判断射频卡是否已经注册
            Register = ManagerE.DataEntity.status.CardExist
        Else
            If IsStuExist(newStu.studentNo) Then '判断持卡学生是否已经注册
                MyCIFD.AddCardInfo(newCard)
                Register = ManagerE.DataEntity.status.StudentExist
            Else
                MySIFD.AddStuInfo(newStu)
                MyCIFD.AddCardInfo(newCard) '讲符合条件的注册添加到数据库
                Register = ManagerE.DataEntity.status.Succeed
            End If
        End If
    End Function
      返回到U层的效果为

       Select Case MyRegisger.Register(newCard, newStu) '判断卡的注册状态
            Case ManagerE.DataEntity.status.CardExist
                MessageBox.Show("该卡已经被注册,不能再次注册!")
            Case ManagerE.DataEntity.status.StudentExist
                MessageBox.Show("该卡注册成功,但发现持卡人注册已注册过其他卡!")
            Case ManagerE.DataEntity.status.Succeed
                MessageBox.Show("该卡注册成功,可上机消费!")
        End Select
   这样就不怕敲代码时出错了,在输入返回值时从智能提醒的下拉菜单中直接选取就可以了!




评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值