我有一个公共属性模块(命名常量,它的价值),没有一个与任何特定对象相关联.我需要根据字符串变量中的值调用这些属性.该变量的值将是我需要使用的属性的名称.
我知道这样的最佳候选者是CallByName,但这需要一个对象来获取属性,正如我所提到的,在这种情况下不存在.
例如,变量应该采用的第一个值是“Master”.当我希望能够使用该变量来调用属性Master()(声明为公共属性的字符串数组)时.
提前致谢!
解决方法
对我而言,听起来就像你试图以与Enum值相同的方式使用字符串.有几种方法可以做到这一点,但这里有一个简单的例子,可以帮助您思考如何将字符串解析为常量编程问题.
- Namespace Constants
- Public Enum Priorities
- Unknown = 0
- Low = 1
- Medium = 2
- High = 3
- VeryHigh = 4
- End Enum
- Public Class ConverterTo
- Public Function Priority(ByVal value As String) As Constants.Priorities
- Select Case value.ToLower
- Case "low"
- Return Priorities.Low
- Case "medium"
- Return Priorities.Medium
- Case "high"
- Return Priorities.High
- Case "veryhigh"
- Return Priorities.VeryHigh
- Case Else
- Return Priorities.Unknown
- End Select
- End Function
- End Class
- End Namespace