[.NET] 請教陣列問題

看板Visual_Basic作者 (拉米亞妹妹)時間4年前 (2020/10/15 15:25), 4年前編輯推噓0(003)
留言3則, 2人參與, 4年前最新討論串1/1
請輸入專案類型(網站專案或者應用程式專案):密碼產生器(隨機大小寫) 目前我卡在陣列的內容好像不如我預期會更新的問題 程式碼如下 ----------------------------------------- Private Sub Button_GeneratePasswordSection1_Click(sender As Object, e As EventArgs) Handles Button_GeneratePasswordSection1.Click Dim englishWordString As String = TextBox_PasswordSection1.Text Dim englishWordCharArray() As Char = englishWordString.ToCharArray Randomize() For Each element In englishWordCharArray Dim randomValue As Integer = CInt(Math.Floor((100 - 1 + 1) * Rnd())) + 1 If randomValue >= 50 Then element = UCase(element) Else element = LCase(element) End If Debug.WriteLine("產生亂數:" & randomValue & " 將輸入的英文單字隨機 轉換大小寫為:" & element) Next Debug.WriteLine("將陣列的內容顯示成一行:" & englishWordCharArray) ' englishWordString = englishWordCharArray ' TextBox_PasswordSection1.Text = englishWordString End Sub --------------------------------------------------------- 輸入小寫windows 結果輸出的訊息卻還是小寫 ----------------------------------------------------- 產生亂數:48 將輸入的字元隨機轉換大小寫為:w 產生亂數:7 將輸入的字元隨機轉換大小寫為:i 產生亂數:47 將輸入的字元隨機轉換大小寫為:n 產生亂數:24 將輸入的字元隨機轉換大小寫為:d 產生亂數:70 將輸入的字元隨機轉換大小寫為:O 產生亂數:95 將輸入的字元隨機轉換大小寫為:W 產生亂數:49 將輸入的字元隨機轉換大小寫為:s windows --------------------------------------------------- 請問這是UCase LCase的大小寫轉換只是顯示上的轉換 不是實際上的轉換 還是我沒把新的字元存回陣列? -- 我的電腦... 代號:拉米亞 代號:賽蓮 CPU:AMD Phenom II X4 965 CPU:AMD Athlon II X4 640 RAM:金士頓 DDR3-1866 4GB*4 RAM:金士頓 DDR3-1866 4GB*2 MB:ASUS M5A97 R2.0 MB:ASUS M5A78L-M/USB3 GPU:撼訊 AXRX 570 4GBD5-3DHD/OC GPU:MSI RX 550 AERO ITX 2G OC SSD:ANACOMDA N2 240GB SSD:ANACOMDA A1S 120GB -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.168.123.88 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Visual_Basic/M.1602746757.A.B37.html ※ 編輯: ltytw (1.168.123.88 臺灣), 10/15/2020 18:59:51

10/23 19:20, 4年前 , 1F
VB For Each 好像是Call by Value
10/23 19:20, 1F

10/23 20:06, 4年前 , 2F
VB的字串處理是傳值,而不是傳址,所以這樣是改不到陣列元
10/23 20:06, 2F

10/23 20:06, 4年前 , 3F
素的。
10/23 20:06, 3F
文章代碼(AID): #1VX_c5it (Visual_Basic)
文章代碼(AID): #1VX_c5it (Visual_Basic)