XY-Operator ist für die Typen "Char" und "Integer" nicht definiert.

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Wanted.

    XY-Operator ist für die Typen "Char" und "Integer" nicht definiert.

    Abend, ich hab mal wieder Probleme beim übersetzten von C# nach VB. Ich lasse einen Online Konverter folgenden Code nach VB konvertieren:

    Quellcode

    1. public string Encipher(string sData)
    2. {
    3. StringBuilder sbResult = new StringBuilder(sData.Length * 2);
    4. for (int a = 0; a < sData.Length; a++)
    5. {
    6. byte k = MixTable();
    7. int c = sData[a] & 0xff ^ k;
    8. if (c > 0)
    9. {
    10. sbResult.Append(HEXALPHABET_CHARS[c >> 4 & 0xf]);
    11. sbResult.Append(HEXALPHABET_CHARS[c & 0xf]);
    12. }
    13. else
    14. {
    15. sbResult.Append("00");
    16. }
    17. }
    18. return sbResult.ToString();
    19. }

    Die Konvertierung erfolgt ohne Fehler jedoch zeigt Visual Studios bei diesem Code einen Fehler an:

    VB.NET-Quellcode

    1. Public Function Encipher(sData As String) As String
    2. Dim sbResult As New StringBuilder(sData.Length * 2)
    3. For a As Integer = 0 To sData.Length - 1
    4. Dim k As Byte = MixTable()
    5. Dim c As Integer = sData(a) And &Hff Xor k 'Fehler ist von sData(a) bis vor Xor
    6. If c > 0 Then
    7. sbResult.Append(HEXALPHABET_CHARS(c >> 4 And &Hf))
    8. sbResult.Append(HEXALPHABET_CHARS(c And &Hf))
    9. Else
    10. sbResult.Append("00")
    11. End If
    12. Next
    13. Return sbResult.ToString()
    14. End Function

    Ich erhalte folgenden Fehler:
    Der And-Operator ist für die Typen "Char" und "Integer" nicht definiert.
    Ich weiß nicht weiter, hab schon manches versucht, was muss ich tun? Der Fehler tritt an mehreren Stellen mit ähnlicher Struktur auf:
    *HEXALPHABET_CHARS(D) = (A And &HFF)
    -Der And-Operator ist für die Typen "Char" und "Integer" nicht definiert.
    *val__2(x) - 64
    -Der --Operator ist für die Typen "Char" und "Integer" nicht definiert.
    *raw(pos) And 4
    -Der And-Operator ist für die Typen "Char" und "Integer" nicht definiert.
    *raw(pos) >> 3
    -Der >>-Operator ist für die Typen "Char" und "Integer" nicht definiert.

    Gruß und Danke im voraus, Wanted. :wacko:
    Versuch mal:

    VB.NET-Quellcode

    1. Public Function Encipher(sData As String) As String
    2. Dim sbResult As New StringBuilder(sData.Length * 2)
    3. For a As Integer = 0 To sData.Length - 1
    4. Dim k As Byte = MixTable()
    5. Dim c As Integer = CInt(AscW(sData(a))) And &Hff Xor k 'Fehler ist von sData(a) bis vor Xor
    6. If c > 0 Then sbResult.Append(HEXALPHABET_CHARS(c >> 4 And &Hf))
    7. sbResult.Append(HEXALPHABET_CHARS(c And &Hf))
    8. Else
    9. sbResult.Append("00")
    10. End If
    11. Next
    12. Return sbResult.ToString()
    13. End Function