vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Kleines Beispiel 
Autor: Manfred X
Datum: 16.04.13 10:16

Public Class cVector
 
    Private _data() As Double
    Private Const MaxVectorLength As Integer = 100
 
    Private Sub ArrayInit(ByVal data() As Double)
        If data Is Nothing OrElse data.Length < 1 Then
            Throw New ArgumentException("Keine Vektordaten verfügbar")
        End If
 
        If data.Length > MaxVectorLength Then
            Throw New ArgumentException("Ungeeignete Vektorlänge")
        End If
 
        'der Array-Inhalt wird kopiert
        _data = CType(data.Clone, Double())
    End Sub
 
    Public Sub New(ByVal data() As Double)
        ArrayInit(data)
    End Sub
 
    Public Sub New(ByVal vector As cVector)
        If vector Is Nothing Then
            Throw New ArgumentException("Kein Vektor verfügbar")
        End If
        ArrayInit(vector._data)
    End Sub
 
    Public Sub New(Optional ByVal Length As Integer = 1)
        If Length < 1 OrElse Length > MaxVectorLength Then
            Throw New ArgumentException("Ungeeignete Vektorlänge")
        End If
        Array.Resize(_data, Length)
    End Sub
 
    Public ReadOnly Property Length() As Integer
        Get
            Return _data.Length
        End Get
    End Property
 
    Default Public Property Element(ByVal index As Integer) As Double
        Get
            Return _data(index)
        End Get
        Set(value As Double)
            If Double.IsNaN(value) OrElse Double.IsInfinity(value) Then
                Throw New InvalidExpressionException _
                    ("IEEE-Sonderwert kann nicht zugewiesen werden")
            End If
 
            'Hier weitere Validierungen des entstehenden Vektors einbauen
            '............
 
            _data(index) = value
        End Set
    End Property
 
    Public Shared Operator +(ByVal a As cVector, b As cVector) As cVector
        If Not a.Length = b.Length Then
            Throw New ArgumentException("Ungleiche Vektorlänge")
        End If
 
        Dim c As New cVector(a.Length)
 
        For i As Integer = 0 To a.Length - 1
 
            'Die sichere Variante der Wertzuweisung
            'c(i) = a(i) + b(i)
 
            'Die schnelle Variante der Wertzuweisung
            c._data(i) = a._data(i) + b._data(i)
        Next i
 
        Return c
    End Operator
 
    Public Shared Operator -(ByVal a As cVector, b As cVector) As cVector
        If Not a.Length = b.Length Then
            Throw New ArgumentException("Ungleiche Vektorlänge")
        End If
 
        Dim c As New cVector(a)
        For i As Integer = 0 To a.Length - 1
            c._data(i) -= b._data(i)
        Next i
 
        Return c
    End Operator
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Geschwindigkeitsverlust durch Klasse?1.513DerBrain15.04.13 10:22
Re: Geschwindigkeitsverlust durch Klasse?804Manfred X15.04.13 10:35
Re: Geschwindigkeitsverlust durch Klasse?812DerBrain15.04.13 10:44
Re: Geschwindigkeitsverlust durch Klasse?788Manfred X15.04.13 10:59
Re: Geschwindigkeitsverlust durch Klasse?918DerBrain15.04.13 11:06
Re: Geschwindigkeitsverlust durch Klasse?800Manfred X15.04.13 11:30
Re: Geschwindigkeitsverlust durch Klasse?782Preisser15.04.13 13:44
Re: Geschwindigkeitsverlust durch Klasse?820DerBrain16.04.13 09:09
Re: Geschwindigkeitsverlust durch Klasse?748Manfred X16.04.13 09:20
Kleines Beispiel796Manfred X16.04.13 10:16

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel