我想使用 Directcast 或 ctype 之類的東西,但這次是字串。不幸的是,我不知道如何進行。
Public bttkey1color, bttkey2color, bttkey3color, bttkey4color, bttkey5color,
bttkey6color, bttkey7color as string
Dim myColor As String() = IO.File.ReadAllLines(My.Application.Info.DirectoryPath ("\Color.txt"))
我怎樣才能減少這個代碼?我不需要寫幾十遍。
bttkey1color = myColor(1)
bttkey2color = myColor(2)
bttkey3color = myColor(3)
bttkey4color = myColor(4)
bttkey5color = myColor(5)
bttkey6color = myColor(6)
bttkey7color = myColor(7)
uj5u.com熱心網友回復:
您可以使用Color.FromName(String) 方法。
要減少代碼,請Color對結果使用陣列,而不是單個變數。
' Test
Dim colorNames As String() = {"Lime", "Black", "Red"}
Dim colors As Color() = colorNames.
Select(Function(s) Color.FromName(s)).ToArray()
For Each c In colors
Console.WriteLine(c)
Next
印刷
顏色 [石灰]
顏色 [黑色]
顏色 [紅色]
或者,如果您對LINQ不滿意,這里有一個使用 For-loops 的解決方案
Dim colorNames As String() = {"Lime", "Black", "Red"}
Dim colors(colorNames.Length - 1) As Color
For i = 0 To colorNames.Length - 1
colors(i) = Color.FromName(colorNames(i))
Next
For Each c In colors
Console.WriteLine(c)
Next
也可以看看
- Visual Basic 中的陣列
- 集合 (Visual Basic)(作為陣列的替代品)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/405793.html
標籤:
