动态取变量值

Ivin 2010-09-18 09:26:59
定义了以下常量:

const A1="1"
const A2="2"

dim n as string

n="1"

要通过变量n来取得常量的值,有没有这样的一个函数通过?("A"&n)取出常量A1的值“1”
...全文
100 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tenkol 2010-09-21
  • 打赏
  • 举报
回复
我觉得用枚举或者数组都可以实现
ckp00001 2010-09-20
  • 打赏
  • 举报
回复
Public Const A1 As String = "is A1"
Public Const A2 As String = "is A2"
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

With Me.GetType()
For i As Integer = 1 To 2
Debug.Print(.GetField("A" & i).GetValue(Me).ToString())
Next

End With

End Sub
米か臹 2010-09-19
  • 打赏
  • 举报
回复
最好用枚举来实现,你那样拼凑是不行了
机器人 2010-09-19
  • 打赏
  • 举报
回复
如果是要动态取,那就不要设置为常量了。用Hashtable或者KeyValuePair什么的更好。
你也可以用Config来做。

Dim hs As Hashtable = new Hashtable();
hs.Add("A1", "1")
hs.Add("A2", "2")
...

取的话就可以动态了
For i As Integer = 1 to 10
Console.WriteLine(hs("A" & CStr(i)))
Next

用config配置更好:
<appSettings>
<add key="A1" value="1" />
<add key="A2" value="2" />
...
</appSettings>

For i As Integer = 1 To 10
Console.WriteLine( _
System.Configuration.ConfigurationManager.AppSettings("A" & CStr(i)))
Next
threenewbee 2010-09-19
  • 打赏
  • 举报
回复
CLR via C# 3rd 上面介绍了使用枚举代替常量的做法,lz可以参考。

详细参阅15章。
   private enum Color /* : byte */ {
White, // Assigned a value of 0
Red, // Assigned a value of 1
Green, // Assigned a value of 2
Blue, // Assigned a value of 3
Orange, // Assigned a value of 4
}
// Returns array of Color enums
Color[] colors = (Color[])Enum.GetValues(typeof(Color));
Console.WriteLine("Number of symbols defined: " + colors.Length);
Console.WriteLine("Value\tSymbol\n-----\t------");
foreach (Color color in colors) {
// Display each symbol in Decimal and General format.
Console.WriteLine("{0,5:D}\t{0:G}", color);
}
Tosp2012 2010-09-18
  • 打赏
  • 举报
回复
这样的函数只能自己写了,不过真不鼓励这样的设计。
要达到一种效果,有很多种思路。
就好像解答一道题,结果只有一个,但方法有很多很多。
兔子-顾问 2010-09-18
  • 打赏
  • 举报
回复
反射,这并不是一个很好的设计,我可以给你例子。但你最好能换个思路,比如
Public StringParameters As String() = {"1", "2"}
然后通过
Dim n As Integer
n = 1
StringParameters(n)
来获得"2"这个值。

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧