Solved

How can I get rid of InvalidCastException

Posted on 2010-11-09
6
507 Views
Last Modified: 2012-05-10
A short program to generate an Array of Random Valuse and display it on TextBox.Text  looks OK in static state as below.
Buit when it is activated, InvalidCastException occurs at line 3 and halts the progam execution.
1   Private Sub Button1_Click(ByVal sender As System.Object, _
2                              ByVal e As System.EventArgs) Handles Button1.Click
3       Dim K As String = "Random Value: " & GenerateArrayWithRandomValues()
4       TextBox1.Text = K
5   End Sub
6
7   Public Function GenerateArrayWithRandomValues()
8       Dim n As Integer : n = 1 + Rnd() * 20
9       Dim A(0 To n - 1) As Integer
10     Dim i As Integer
11        For i = LBound(A) To UBound(A)
12          A(i) = Rnd() * 1000
13     Next
14     GenerateArrayWithRandomValues = A
15
16 End Function

Will you help me how I should rewrite the line 3?

Thank you,
SilentMajority
Private Sub Button1_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) Handles Button1.Click
        Dim K As String = "Random Value: " & GenerateArrayWithRandomValues()
        TextBox1.Text = K
    End Sub

    Public Function GenerateArrayWithRandomValues()
        Dim n As Integer : n = 1 + Rnd() * 20
        Dim A(0 To n - 1) As Integer
        Dim i As Integer
        For i = LBound(A) To UBound(A)
            A(i) = Rnd() * 1000
        Next
        GenerateArrayWithRandomValues = A

    End Function

Open in new window

0
Comment
Question by:SilentMajority
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3
6 Comments
 
LVL 19

Expert Comment

by:Bardobrave
ID: 34092431
Your GenerateArrayWithRandomValues is returning an array while on Button1_Click you are assigning it to a string.

You must convert returning value of GenerateArrayViwhRandomValues to a string, try with join function:

Dim K As String = "Random Value: " & join(GenerateArrayWithRandomValues(),"|")
0
 

Author Comment

by:SilentMajority
ID: 34160685
Dear Bardobrave,

Thank you for your comment, but your idea of applying "Join Function" to GenerateArrayWithRandomValues ended with "AmbiguousMatchException".
There seem to be multiple choices for the Type Conversion from Arrayed Integers to String, according to the hints.
Will this be related with the data structure of the Array, say, Linear or Non-Linear?

Thanks,
Silent Majority
0
 
LVL 19

Expert Comment

by:Bardobrave
ID: 34161989
I usually code in C# so I'm not very familiarized with VB methods. But surely must be any option on the language that allows you to convert your array without receiving an error.
0
Moving data to the cloud? Find out if you’re ready

Before moving to the cloud, it is important to carefully define your db needs, plan for the migration & understand prod. environment. This wp explains how to define what you need from a cloud provider, plan for the migration & what putting a cloud solution into practice entails.

 

Author Comment

by:SilentMajority
ID: 34162374
Dear Bardobrave,

I will try Object Type instead of Integer Type for the array to be converted to String.
I will let you know the end result.

Thanks,
Silent Majority
Tokyo, Japan
0
 
LVL 19

Accepted Solution

by:
Bardobrave earned 500 total points
ID: 34163869
You also can loop through your array and build a string with it's values and assign it to the button click text instead of assigning the whole array.

More dirty but probably faster and easier.
0
 

Author Closing Comment

by:SilentMajority
ID: 34164156
Yes, I got the same answer from MSDN as well. Namely, breaking the Array Data back to individual char elements is only the way to converting the Array to String at large. Actually I did it and concatinated each char in TextBox, in pararel, while I was generating the random numbers. Thanks a lot for you time and concllusion. SilentMajority, Tokyo, Japan
0

Featured Post

Want Experts Exchange at your fingertips?

With Experts Exchange’s latest app release, you can now experience our most recent features, updates, and the same community interface while on-the-go. Download our latest app release at the Android or Apple stores today!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Iteration: Iteration is repetition of a process. A student who goes to school repeats the process of going to school everyday until graduation. We go to grocery store at least once or twice a month to buy products. We repeat this process every mont…
When there is a disconnect between the intentions of their creator and the recipient, when algorithms go awry, they can have disastrous consequences.
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below. https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt https://filedb.experts-exchange.com/incoming/201…
This is my first video review of Microsoft Bookings, I will be doing a part two with a bit more information, but wanted to get this out to you folks.

624 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question