Announcement

Collapse
No announcement yet.

vb nach c#

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

  • vb nach c#

    Hallo,

    ich muss einen vb.net Code nach C# übersetzten. Ich hab nun folgende Zeile:

    Code:
    Protected Const B_Abort_Tran As Byte = &H15
    Ich habe diese so übersetzt:

    Code:
     protected const byte B_Abort_Tran = &H15;
    Bei &H15 bekomm ich einen Fehler, wie muss man das in C# schreiben?

    lg ralf

  • #2
    Code:
    protected const byte B_Abort_Tran = 0x15;

    Comment


    • #3
      stimmt. jetzt fällts mir wieder ein

      hab noch was

      Code:
             Private bReturnCode As Byte
             Public Property ReturnData() As Boolean
                  Get
                      Return (bReturnCode = 2)
                  End Get
                  Set(ByVal Value As Boolean)
                      If Value Then
                          bReturnCode = 2
                      End If
                  End Set
              End Property
      Wie müsste das aussehen? Ich kann ja das byte bReturnCode nicht nach Bool konvertieren?

      lg ralf

      Comment


      • #4
        Code:
        private byte returnCode;
        public bool ReturnData
        {
            get
            {
                return returnCode == 2;
            }
            set
            {
                if (value)
                    returnCode = 2;
            }
        }
        Was ist der Sinn einer Property die man nur auf true setzen kann

        Comment


        • #5
          Wenn das Property ReturnData als Setter aufgerufen wird, wird die Variable bReturnCode auf 2 gesetzt, bei der Property ReturnDatablock z.b. auf 0. Wenn man Sie als Getter aufruft, kann ich damit abfragen, ob der Wert der Variable 2 ist.

          Wie würdest Du es anders lösen?

          Comment


          • #6
            Mit Methoden ohne Parameter. Da kann man im Namen festlegen was sie tut und es ist eindeutig was die macht. Das Verhalten deiner Property ist im Code nur ganz schwer erkennbar(Denk an das Geheimnisprinzip. Ein Benutzer der Property sollte von deren Interna nichts Wissen müssen) woher soll der Benutzer wisse das ein setzen auf false nutzlos ist? A. Es knallt nicht und B. würde man auch nicht unbedingt auf die Idee kommen deswegen in der Doku nachzuschlagen.

            Also würde ich wahrscheinlich (ohne dein Gesamtproblem zu kennen) wohl eine reine Getter Property machen und eine Methode die den returnCode setzt mit sprechendem Namen.

            Comment


            • #7
              Muss ich Ralf eindeutig recht geben Ich verstehe auch nicht ganz warum Du Dir den Wert 2 merkst. Wenn der für eine DB oder ähnliches ist sollte das sowieso ein eigenes Feld werden was man einfach lesen kann. Dann wäre Deine Property dort eine ganz einfach AutoProperty. Die andere Property wäre eine einfach bool get Property die prüft ob der Wert 2 ist und dementsprechend true oder false zurückgibt. Also quasi so:

              [highlight=c#]
              public bool ReturnData { get; set; }
              public byte ReturnDataValue { get { return ReturnData ? 2:0; } } // Ich habe 0 jetzt einfach für nicht gesetzt angenommen
              [/highlight]

              Der Code kommt mir allerdings generell etwas spanisch vor Ich denke da wäre ein größeres Refactoring von nöten.

              Comment

              Working...
              X