Solved

Function

Posted on 2011-09-24
2
260 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
[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
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 86

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

Instantly Create Instructional Tutorials

Contextual Guidance at the moment of need helps your employees adopt to new software or processes instantly. Boost knowledge retention and employee engagement step-by-step with one easy solution.

Question has a verified solution.

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

I think the Typed DataTable and Typed DataSet are very good options when working with data, but I don't like auto-generated code. First, I create an Abstract Class for my DataTables Common Code.  This class Inherits from DataTable. Also, it can …
1.0 - Introduction Converting Visual Basic 6.0 (VB6) to Visual Basic 2008+ (VB.NET). If ever there was a subject full of murkiness and bad decisions, it is this one!   The first problem seems to be that people considering this task of converting…
Come and listen to Percona CEO Peter Zaitsev discuss what’s new in Percona open source software, including Percona Server for MySQL (https://www.percona.com/software/mysql-database/percona-server) and MongoDB (https://www.percona.com/software/mongo-…
In this video we outline the Physical Segments view of NetCrunch network monitor. By following this brief how-to video, you will be able to learn how NetCrunch visualizes your network, how granular is the information collected, as well as where to f…

695 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