?
Solved

Function

Posted on 2011-09-24
2
Medium Priority
?
277 Views
Last Modified: 2012-06-27
Public Class SigmaValues      

       Public sigmaAway1 As Double
        Public sigmaAway2 As Double
        Public sigmaAway3 As Double
        Public sigmaAway4 As Double
        Public sigmaAway5 As Double
        Public sigmaAway6 As Double
        Public sigmaAway7 As Double
        Public sigmaAway8 As Double

End class

Public Function GetSigmaSum(sigmaList as arraylist, sigmaID as integer) as double

Dim sigmaSum as double



return sigmaSum

End Function

Hi Experts,

Please look at the above snippet. I would like to pass an array of sigmavalues to a function and it pass back the sum of all values in a single sigma group. How can I do this. Useage would be.

GetSigmaSum(sigmalist, 2)

This would pass back the sum of all sigmaAway2 values.

0
Comment
Question by:DColin
2 Comments
 
LVL 83

Accepted Solution

by:
CodeCruiser earned 1000 total points
ID: 36593854
Is the number of sigmaaway variables in class limited? Or is it extendable? How about using an array within the class as well? Then you can try something like below

Public Function GetSigma(sigmaList as arraylist, sigmaID as integer) as double
Dim Sum as Double
For Each sl in SigmaList
   Sum += sl.Values(sigmaID - 1) 'Values is the array in the class
Next
Return Sum
End Function

If not using array then something like below

Public Function GetSigma(sigmaList as arraylist, sigmaID as integer) as double
Dim Sum as Double
For Each sl in SigmaList
 If sigmaID = 1 Then  
    Sum += sl.SigmaAway1
 ElseIf SigmaID = 2 then
    Sum += sl.SigmaAway2
 ...
 End If
Next
Return Sum
End Function
0
 
LVL 86

Assisted Solution

by:Mike Tomlinson
Mike Tomlinson earned 1000 total points
ID: 36594496
You can do this via Reflection or the legacy CallByName()  function.

Here's a quick example without any error checking:
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim al As New ArrayList

        Dim sv As New SigmaValues
        sv.sigmaAway2 = 1
        al.Add(sv)

        sv = New SigmaValues
        sv.sigmaAway2 = 1
        al.Add(sv)

        sv = New SigmaValues
        sv.sigmaAway2 = 1
        al.Add(sv)

        Dim sum As Double = GetSigmaSum(al, 2)
        MessageBox.Show(sum)
    End Sub

    Public Function GetSigmaSum(ByVal sigmaList As ArrayList, ByVal sigmaID As Integer) As Double
        Dim sigmaSum As Double
        For Each sl As SigmaValues In sigmaList
            sigmaSum = sigmaSum + CallByName(sl, "sigmaAway" & sigmaID, CallType.Get)
        Next
        Return sigmaSum
    End Function

End Class

Public Class SigmaValues
    Public sigmaAway1 As Double
    Public sigmaAway2 As Double
    Public sigmaAway3 As Double
    Public sigmaAway4 As Double
    Public sigmaAway5 As Double
    Public sigmaAway6 As Double
    Public sigmaAway7 As Double
    Public sigmaAway8 As Double
End Class

Open in new window

0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

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

Well, all of us have seen the multiple EXCEL.EXE's in task manager that won't die even if you call the .close, .dispose methods. Try this method to kill any excels in memory. You can copy the kill function to create a check function and replace the …
If you're writing a .NET application to connect to an Access .mdb database and use pre-existing queries that require parameters, you've come to the right place! Let's say the pre-existing query(qryCust) in Access takes a Date as a parameter and l…
Integration Management Part 2
Whether it be Exchange Server Crash Issues, Dirty Shutdown Errors or Failed to mount error, Stellar Phoenix Mailbox Exchange Recovery has always got your back. With the help of its easy to understand user interface and 3 simple steps recovery proced…
Suggested Courses
Course of the Month16 days, 1 hour left to enroll

850 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