none
Klassenbibliotheken - Eigene Property : GetAnweisung RRS feed

  • Frage

  • Guten Tag,

    ich habe vor ein Usercontrol zu machen, welches ich als Klassenbibliothek speichere. Es soll ein simpler Quader werden, da ich in einem anderen Programm einen solchen benötigen. Ich habe versucht eine Property für die Tiefe zu schreiben, nur ich weiß nicht sorecht was ich in die Get-Anweisung setzen soll.

    Imports System.Windows.Forms
    Imports System.Drawing.Drawing2D
    Imports System.ComponentModel
    Public Class Cuboid
        Inherits UserControl
        Protected Tiefe As Integer
        Private Sub Cuboid_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
    
        End Sub
        <Browsable(True)> _
        <EditorBrowsable(EditorBrowsableState.Always)> _
        Public Overridable Property Depth As Integer
            Get
                ' Return ? 
            End Get
            Set(ByVal value As Integer)
                If value <= 1 Then
                    Tiefe = value
                Else
                    Tiefe = 10
                End If
            End Set
        End Property
    End Class

    Außerdem würde ich gerne wissen ob ich direkt in der Set-Anweisung Me.Depth = value verwenden kann , ohne externe Variable.

    Danke im Vorraus

    - Fabian


    • Bearbeitet Fabian89 Montag, 29. Oktober 2012 14:03
    Montag, 29. Oktober 2012 14:02

Antworten

  • Hallo Fabian,

    für Deine Get Anweisung machst Du einfach

    Return Tiefe

    zu Deiner Frage bezgl. der Set Anweisung:

    würdest Du Me.Depth = value verwenden, würde sich die Set Anweisung rekursiv immer wieder aufrufen, also gar nicht gut ;-)


    Hannes

    If you have got questions about this, just ask.

    In a perfect world,
    users would never enter data in the wrong form,
    files they choose to open would always exist
    and code would never have bugs.

    C# to VB.NET: http://www.developerfusion.com/tools/convert/csharp-to-vb/

    • Als Antwort markiert Fabian89 Montag, 29. Oktober 2012 14:58
    Montag, 29. Oktober 2012 14:08
  • Hallo, ja, solange bis du den Wert zur Laufzeit wieder änderst.

    Wenn du natürlich nach der Initialisierung im Code, also wahrscheinlich nach dem Kontruktor den Wert wieder änderst, so ändert er sich natürlich auch wenn das Programm ausgeführt wird.


    Koopakiller - http://koopakiller.ko.ohost.de/


    Montag, 29. Oktober 2012 14:39
    Moderator

Alle Antworten

  • Hallo Fabian,

    für Deine Get Anweisung machst Du einfach

    Return Tiefe

    zu Deiner Frage bezgl. der Set Anweisung:

    würdest Du Me.Depth = value verwenden, würde sich die Set Anweisung rekursiv immer wieder aufrufen, also gar nicht gut ;-)


    Hannes

    If you have got questions about this, just ask.

    In a perfect world,
    users would never enter data in the wrong form,
    files they choose to open would always exist
    and code would never have bugs.

    C# to VB.NET: http://www.developerfusion.com/tools/convert/csharp-to-vb/

    • Als Antwort markiert Fabian89 Montag, 29. Oktober 2012 14:58
    Montag, 29. Oktober 2012 14:08
  • Hallo Fabian,

    in deinem Fall wäre

      Return Tiefe

    wohl das richtige. Für die Frage nach "weniger Code für Eigenschaften" siehe:

      http://msdn.microsoft.com/de-de/library/dd293589.aspx


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Montag, 29. Oktober 2012 14:19
    Moderator
  • Aha (= so läuft es. Wenn ich dem Steuerelement zur Entwicklungszeit nun den Wert 50 für Depth geben würde, würde es den Wert dann während der Laufzeit beibehalten ?

    Montag, 29. Oktober 2012 14:34
  • Hallo, ja, solange bis du den Wert zur Laufzeit wieder änderst.

    Wenn du natürlich nach der Initialisierung im Code, also wahrscheinlich nach dem Kontruktor den Wert wieder änderst, so ändert er sich natürlich auch wenn das Programm ausgeführt wird.


    Koopakiller - http://koopakiller.ko.ohost.de/


    Montag, 29. Oktober 2012 14:39
    Moderator
  • Ok.

    Vielen Dank.

    Montag, 29. Oktober 2012 14:57