【发布时间】:2017-07-16 15:10:10
【问题描述】:
您好,首先请原谅我的英语非常糟糕...
我不习惯使用结构或枚举...
我的项目中有很多课程,我正在努力组织。
My Class Duree 将包含多个枚举或结构。
我希望能够调用不同的枚举或结构。
并在相关结构上构建请求。
RepairList.vb
Public Class RepairList
Dim Tool As New Tools
Dim uuu As String = Tool.Find("C:\Data\1\" & Form1.TextBox2.Text & ".txt", "ProductType")
' Now uuu contains iPhone7,2
uuu = uuu.Replace(",", "")
uuu = uuu.Replace("i", "I")
uuu = uuu.Replace(" ", "")
uuu = uuu.Replace("P", "p")
' Now uuu contain Iphone72
Dim p As Devices.Device ' Class Devices --> Structure --> Device
Dim info As Reflection.FieldInfo = p.GetType().GetField(uuu)
Dim az As Object = info.GetValue(p)
' Now az contains Iphone 6
Dim toto As Object
toto = az
toto = toto.Replace(" ", "")
' Now toto contain Iphone6 the Name of the enum i woul catch in Duree
Dim test As String = myCheckbox.Name ' now test contains AntenneWifi
Dim value As Integer
value = CInt([Enum].Parse(GetType(Duree.Iphone6), test))
End Class
Devices.vb
Public Class Devices
Public Structure Device
Const Iphone41 = "Iphone 4S"
Const Iphone51 = "Iphone 5"
Const Iphone52 = "Iphone 5"
Const Iphone53 = "Iphone 5C"
Const Iphone54 = "Iphone 5C"
Const Iphone61 = "Ihpone 5S"
Const Iphone62 = "Iphone 5S"
Const Iphone71 = "Iphone 6 Plus"
Const Iphone72 = "Iphone 6"
Const Iphone81 = "Iphone 6S"
Const Iphone82 = "Iphone 6S Plus"
Const Iphone84 = "Iphone SE"
Const Iphone91 = "Iphone 7"
Const Iphone92 = "Iphone 7 Plus"
Const Iphone93 = "Iphone 7"
Const Iphone94 = "Iphone 7 Plus"
End Structure
End Class
Duree.vb
Public Class Duree
Public Enum Iphone5
'Define the Repair Time For each action.
AntenneWifi = 35
Batterie = 15
BtnVolDown = 45
BtnVolUp = 45
BtnHome = 20
BtnPower = 35
CableWifiBth = 35
CamAr = 30
MotherBoard = 30
FullScreen = 20
ScreenOnly = 40
HPExt = 35
HPInt = 25
SimLevier = 35
NappeHomeLong = 30
NappeBtnPower = 45
NappeFacetime = 30
NappeVolVibr = 40
PlaqueProtectLCD = 30
PriseJack = 40
SimTray = 2
Vibreur = 25
End Enum
Public Enum Iphone6
'Define the Repair Time For each action.
AntenneWifi = 35
Batterie = 15
BtnVolDown = 45
BtnVolUp = 45
BtnHome = 20
BtnPower = 35
CableWifiBth = 35
CamAr = 30
MotherBoard = 30
FullScreen = 20
ScreenOnly = 40
HPExt = 35
HPInt = 25
SimLevier = 35
NappeHomeLong = 30
NappeBtnPower = 45
NappeFacetime = 30
NappeVolVibr = 40
PlaqueProtectLCD = 30
PriseJack = 40
SimTray = 2
Vibreur = 25
End Enum
End Class
我在这里只放了 2 个枚举,但我在 Duree 类中还有更多
所以在 RepairList.vb 中,我将在下面的行中替换 Duree.Iphone6
value = CInt([Enum].Parse(GetType(Durée.Iphone6), test))
类似
value = CInt([Enum].Parse[GetType("Duree+" & toto), test))
但我找不到正确的语法。
这是我之前看过的内容的概述
还有很多其他的..
如果你能帮助我,非常感谢
【问题讨论】:
-
我真的不明白你在这里尝试什么。您从变量中获取枚举的名称作为字符串,然后尝试设置与枚举值关联的整数,或者您要做什么?
-
抱歉,我必须编辑主帖以尽量准确。
-
我猜他的意思是找到一个基于字符串的枚举。顺便说一句,你为什么想要它?如果您的程序需要选择,枚举是防止任何错误输入的最佳方法...
-
是的,这似乎是我需要的,但在另一个班级。我不知道如何构建对 Durée 的请求
-
你的问题没有任何意义。不知道是语言不通还是经验不足,但没有任何意义。