Announcement

Collapse
No announcement yet.

Deklaration von Klassen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Deklaration von Klassen

    Hallo zusammen,
    ich habe 3 Klassen:
    MyClass1
    MyClass2
    MyClass3

    Ich möchte das MyClass1 und MyClass2 von aussen zu sehen sind.
    MyClass3 soll nicht von draussen zu sehen sein, soll aber in MyClass1 und MyClass2 im Zugriff sein.

    Wie muss ich die Klassen deklarieren, damit das funktioniert ?


    Schon mal Danke

  • #2
    Auch hallo,
    Ich möchte das MyClass1 und MyClass2 von aussen zu sehen sind.
    MyClass3 soll nicht von draussen zu sehen sein, soll aber in MyClass1 und MyClass2 im Zugriff sein.
    Das könnte passen: MyClass1 und MyClass2 "Public" und MyClass3 als "Protected Friend" (oder nur "Protected")
    MfG
    Cheat-Sheets for Developers / Programming Quotes

    Comment


    • #3
      Code:
      Public Class MyClass1
      	Inherits MyClass3
      ....
      End Class
      
      Public Class MyClass2
      	Inherits MyClass3
      ....
      End Class
      
      Public Class MyClass3
      ....
      End Class
      Bin mir nicht sicher ob ich mein Problem richtig beschrieben habe.

      Ich möchte in etwa so etwas wie oben, aber MyClass3 soll nicht gesehen werden. Der Zugriff soll nur über MyClass1 und MyClass2 erfolgen.

      Comment


      • #4
        Hallo,

        so geht das nicht, denn MyClass3 wäre als Basisklasse weniger sichtbar als die "Erben" MyClass1 und MyClass2. Die Basisklasse muss immer gleich oder mehr Sichtbar sein als die Erben.

        Du könntest in Erwägung ziehen statt MyClass3 eine Schnittstelle zu verwenden. Oder wenn du auf die Eigenschaften von MyClass3 zugreifen willst könnte diese internal (C#) bzw. Friend (VB.net) sein und als Eigenschaft in MyClass1/2 angeboten werden.

        mfG Gü
        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

        Comment


        • #5
          Du könntest in Erwägung ziehen statt MyClass3 eine Schnittstelle zu verwenden. Oder wenn du auf die Eigenschaften von MyClass3 zugreifen willst könnte diese internal (C#) bzw. Friend (VB.net) sein und als Eigenschaft in MyClass1/2 angeboten werden.
          Das ist mir nicht ganz klar...

          Hast du nicht nen kleines Beispiel in VB?

          Danke

          Comment


          • #6
            Hast du nicht nen kleines Beispiel in VB?
            Dazu müsste ich aber wissen warum du MyClass3 als Basisklasse verwenden willst? Ich könnte dir schon 1000 Beispiele posten die dies veranschaulichen was ich meine, aber das ist mir zu aufwändig

            mfG Gü
            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

            Comment


            • #7
              Hast du nicht nen kleines Beispiel in VB?
              Was die Schnittstellenprogrammierung angeht, ein Blick ins Openbook
              MfG
              Cheat-Sheets for Developers / Programming Quotes

              Comment


              • #8
                Vielleicht gehe ich aber auch ganz falsch an das Problem....
                Ich versuchs nochmal:

                Ich möchte eine Dll erstellen.

                In der möchte ich zwei Klassen zu Verfügung stellen ( mit verschiedenen Propertys ).

                In beiden Klassen möchte ich die selben Enums verwenden.

                Die Enums sollen aber nur in diesen beiden Klassen zu sehen sein....

                Ich hoffe ich habe mein Problem jetzt einigermassen so beschrieben, dass ihr wisst was ich möchte....

                Vielleicht habt ihr ja noch mal nen bischen Hilfe für mich....

                Comment


                • #9
                  Ok. Ich habs jetzt.....

                  Comment


                  • #10
                    Und wie? Für Nutzer, die später in dieser Diskussion landen, wäre das gut zu erfahren. Jürgen

                    Comment

                    Working...
                    X