C# Vb.net调用Class1.enum

C# Vb.net调用Class1.enum,c#,vb.net,enums,C#,Vb.net,Enums,你好,首先请原谅我的英语很差 我不习惯使用结构或枚举 我的项目中有很多课程,我正在努力组织 我的类Duree将包含多个枚举或结构 我希望能够调用不同的枚举或结构 并在关联结构上构建请求 RepairList.vb 公共类维修列表 作为新工具的Dim工具 Dim uuu As String=Tool.Find(“C:\Data\1\”和Form1.TextBox2.Text&“.txt”,“ProductType”) 现在uuu包含了iPhone7,2 uuu=uuu.Replace(“,”,“”

你好,首先请原谅我的英语很差

我不习惯使用结构或枚举

我的项目中有很多课程,我正在努力组织

我的类Duree将包含多个枚举或结构

我希望能够调用不同的枚举或结构

并在关联结构上构建请求

RepairList.vb

公共类维修列表
作为新工具的Dim工具
Dim uuu As String=Tool.Find(“C:\Data\1\”和Form1.TextBox2.Text&“.txt”,“ProductType”)
现在uuu包含了iPhone7,2
uuu=uuu.Replace(“,”,“”)
uuu=uuu.替换(“i”、“i”)
uuu=uuu.Replace(“,”)
uuu=uuu.替换(“P”,“P”)
“现在uuu包含Iphone72
Dim p作为设备。设备的类设备-->结构-->设备
Dim info As Reflection.FieldInfo=p.GetType().GetField(uuu)
作为对象的尺寸az=info.GetValue(p)
现在az包含了iPhone6
作为对象的Dim toto
toto=az
toto=toto.Replace(“,”)
“现在,我要把Iphone6包含在Duree中,我会找到的枚举名中
Dim test As String=myCheckbox.Name'现在测试包含AntenneWifi
将值设置为整数
value=CInt([Enum].Parse(GetType(Duree.Iphone6),test))
末级
Devices.vb

公共类设备
公共建筑设备
Const Iphone41=“Iphone 4S”
Const Iphone51=“Iphone 5”
Const Iphone52=“Iphone 5”
Const Iphone53=“iphone5c”
Const Iphone54=“iphone5c”
Const Iphone61=“iPhone 5S”
Const Iphone62=“Iphone 5S”
Const Iphone71=“Iphone 6 Plus”
Const Iphone72=“Iphone 6”
Const Iphone81=“Iphone 6S”
Const Iphone82=“iphone6s Plus”
Const Iphone84=“Iphone SE”
Const Iphone91=“Iphone 7”
Const Iphone92=“Iphone 7 Plus”
Const Iphone93=“Iphone 7”
Const Iphone94=“Iphone 7 Plus”
端部结构
末级
Duree.vb

公共类Duree
公共枚举Iphone5
'定义每个操作的修复时间。
AntenneWifi=35
电池=15
BtnVolDown=45
BtnVolUp=45
BtnHome=20
BTN功率=35
电缆长度=35
CamAr=30
主板=30
全屏=20
仅屏幕=40
HPExt=35
HPInt=25
SimLevier=35
NappeHomeLong=30
NappeBtnPower=45
NappeFacetime=30
NAPPEVOLVIR=40
PlaqueProtectLCD=30
PriseJack=40
SimTray=2
振动器=25
结束枚举
公共枚举Iphone6
'定义每个操作的修复时间。
AntenneWifi=35
电池=15
BtnVolDown=45
BtnVolUp=45
BtnHome=20
BTN功率=35
电缆长度=35
CamAr=30
主板=30
全屏=20
仅屏幕=40
HPExt=35
HPInt=25
SimLevier=35
NappeHomeLong=30
NappeBtnPower=45
NappeFacetime=30
NAPPEVOLVIR=40
PlaqueProtectLCD=30
PriseJack=40
SimTray=2
振动器=25
结束枚举
末级
我在这里只放了2个枚举,但在
Duree
类中有更多

因此,在RepairList.vb中,我将替换下一行中的Duree.Iphone6

value=CInt([Enum].Parse(GetType(Durée.Iphone6),test))
大概是

value=CInt([Enum].Parse[GetType(“Duree+”&toto),test))
但是我找不到正确的语法

下面是我以前看过的内容的概述

还有很多其他的


如果你能帮助我,我将不胜感激。因此,尽管我确信,你所做的并不是最好的方法,无论你想做什么,这里有一种方法可以让你得到你想要的:

Dim a As Assembly=GetType(Duree).Assembly
Dim t As Type=a.GetType(“您的项目名称.Duree+”&toto)
如果
Duree
是名称空间的一部分,则字符串变为
“YOUR_PROJECT\u NAME.namespace.Duree+”&toto

现在
t
包含调用的枚举类型,就像
toto
字符串的文本一样(如果有,如果没有,则为
Nothing

也许有更好的方法来实现这一点,但我不知道,因为我从来都不需要它。 也许如果你能更好地解释一下你想做什么,我们可以帮助你进行设计,这样你就不需要这样的东西了,因为这样做没有多大意义,这不是使用枚举的方式


PD:不要对名称使用特殊字符。写Duree而不是dureée。

不要试图通过枚举和常量在类型系统中对这些信息进行编码,我想你会发现如果你把它们放在应用程序启动时可以加载的数据库表中,可能放在
字典
对象中,效果会更好a将难看的反射代码链接到简单的查找中,并且随着新手机设备的发布,您也可以轻松地完成查找。

我真的不明白您在这里尝试的是什么。您从变量中获取枚举名称,然后尝试设置与枚举值关联的整数,或者尝试执行什么操作?抱歉,我没有编辑主要帖子以使其更加准确。我想他是想找到一个基于字符串的枚举。顺便问一下,你为什么想要它?如果你的程序需要选择,枚举是防止任何错误键入的最佳方法…是的,它似乎是我需要的,但在另一个类中。我不知道如何构建对dureé的请求。你的问题没有任何意义。我我不知道是语言不通还是经验不足,但这毫无意义。多谢花时间回答。但目前“t”仍然是个问题。