Jak použít Public Property ?   zodpovězená otázka

VB.NET

Zdravím,

při psaní vlastní třídy jsem narazil na následující věc. jedná se o třídu, která ovládá nějaký HW. HW má piny a každý pin má dvě vlastnosti func (jak funguje) a value (hodnota, která se má přečíst nebo nastavit). Začal jsem definovat strukturu, ale mi není moc jasné, jak teď použít property pro func a value ...

    Enum PinFunc
        DigitalInput = 1
        DigitalOutput = 2
        AnalogOutput = 8
        AnalogInput = 4
    End Enum

    Private Structure _Pins
        Dim _Value As UShort
        Dim _Func As PinFunc
    End Structure

    Private _PinA As _Pins
    Private _PinB As _Pins

    Public Property ???

Díky

J.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Asi takhle:

    Private _PinA As _Pins
    Private _PinB As _Pins

   
    Public Property PinA() As _Pins
        Get
            Return Me._PinA
        End Get
        Set(ByVal value As _Pins)
            'nějaká úprava
            Me._PinA = value
        End Set
    End Property

    Public Structure _Pins
        Dim _Value As UShort
        Dim _Func As PinFunc
    End Structure

    Enum PinFunc
        DigitalInput = 1
        DigitalOutput = 2
        AnalogOutput = 8
        AnalogInput = 4
    End Enum

Private Structure _Pins by měla být Public, protože musí být vidět i navenek třídy, právě kvůli té vlastnosti.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Obávám se , že to nebude fungovat, použití třídy by mělo vypadat např. takto:

Dim ovladac as New MojeTrida
dim x as UShort

ovladac.PinA.Func = ovladac.PinFunc.DigitalOutput
ovladac.PinA.Value = 255

ovladac.PinB.Func = ovladac.PinFunc.DigitalInput
x = ovladac.PinB.value

nahlásit spamnahlásit spam 0 odpovědětodpovědět
Public Enum PinFunc
  DigitalInput = 1
  DigitalOutput = 2
  AnalogOutput = 8
  AnalogInput = 4
End Enum

Public Class Pin
  Private _func As PinFunc
  Private _value As UShort
  Public Property Func As PinFunc
    Get
      Return _func
    End Get
    Set(ByVal value As PinFunc)
      _func = value
    End Set
  End property
  Public Property Value As UShort
    Get
      Return _value
    End Get
    Set(ByVal value As UShort)
      _value = value
    End Set
  End property
End Class

Public Class MojeTrida
  Private _pinA As New Pin
  Private _pinB As New Pin
  Public ReadOnly Property PinA As Pin
    Get
      Return _pinA
    End Get
  End Property
  Public ReadOnly Property PinB As Pin
    Get
      Return _pinB
    End Get
  End Property
End Class

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Jo, jo, tohle se chová přesně tak jak jsem chtěl DÍKY. Další třída (Pin)už mě taky napadla, ale pořád jsem měl snahu ji vnořovat do té základní což byla zřejmě špatná idea ....

J.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback