[英]VB.Net Structure with Variable from Predefined String List
从开发人员语的角度来看,标题可能不太准确,但这就是我想要达到的目的:
我有一个带有一个变量x的结构z,并且在创建结构z的实例时,我希望x被限制为x类型的列表...因此zx = xType.1或zx = xType.2其中xType 1和2是字符串,而x也是字符串。
Dim a As z
a.x = xType.1
Print(a.x) 'outputs "abc" because xType.1 = "abc"
编辑1:
Structure Z
Dim X as String
End Structure
Sub Main()
Dim a As Z
a.X = "abc"
Print(a.X) 'outputs "abc"
End Sub
这是我可以为aX分配任何值的最简单方法...我想要实现以下目标:
Structure Z
Dim X as ???
End Structure
Sub Main()
Dim a As Z
a.X = XType.abc
Print(a.X) 'outputs "abc"
a.X = XType.Zebra
Print(a.X) 'outputs "Melons"
End Sub
因此,我必须以某种方式构造另一个结构或定义那些XType。
我认为您可能想使用的是一个枚举。 您可以执行以下操作:
Structure Z
Public Enum XType
abc
bcd
End Enum
Dim X As XType
End Structure
Sub Main()
Dim a As Z
a.X = Z.XType.abc
End Sub
这样,您可以为X创建预定义的值,这与MsgBox具有可以选择的不同MsgBoxStyles的方式类似。
编辑:
如果您希望这样做,而不必调用ToString()来获取X的字符串值,则可以尝试这样的操作(可能不是最有效的方法,但是可以使用):
Structure Z
Public Enum XType
abc
bcd
End Enum
Private Xt As XType
Public Property X As Object
Get
Return Xt.ToString()
End Get
Set(ByVal value As Object)
If value.GetType().Name = "XType" Then Xt = value
End Set
End Property
End Structure
或者您可以具有两个这样的属性:
Public X as XType
Public Property XString as String
Get
Return X.ToString()
End Get
End Property
该链接也可能会有所帮助: http : //msdn.microsoft.com/zh-cn/library/essfb559(v=vs.90).aspx?cs-save-lang=1&cs-lang=vb#code-snippet- 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.