Solved

Function

Posted on 2011-09-24
2
232 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 250 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 85

Assisted Solution

by:Mike Tomlinson
Mike Tomlinson earned 250 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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

This article explains how to create and use a custom WaterMark textbox class.  The custom WaterMark textbox class allows you to set the WaterMark Background Color and WaterMark text at design time.   IMAGE OF WATERMARKS STEPS Create VB …
Since .Net 2.0, Visual Basic has made it easy to create a splash screen and set it via the "Splash Screen" drop down in the Project Properties.  A splash screen set in this manner is automatically created, displayed and closed by the framework itsel…
Edureka is one of the fastest growing and most effective online learning sites.  We are here to help you succeed.
Many functions in Excel can make decisions. The most simple of these is the IF function: it returns a value depending on whether a condition you describe is true or false. Once you get the hang of using the IF function, you will find it easier to us…

911 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

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now