[c#] 2 hexstrings vergleichen

08/29/2012 10:01 .Scare™#1
hallo com,

ich habe ein Problem welches mir keine logische Erklärung bietet...

ich möchte 2 strings vergleichen in denen jeweils ein hex Wert steht.

es ist beides mal der selbe..
PHP Code:
if (hex1 == hex2)
{
MessageBox.show("true");
}
else
{
MessageBox.show("false");

ich bekomme aber jedes mal false zurück. kann es sein das man auf diese art keine hexwerte vergleichen kann? wen ja, wie dann? =)


mfg. Scare™
08/29/2012 14:33 nkkk#2
mit == kann man alle string vergleichen ob sie gleich sind, also sind deine strings hex1, hex2 nicht gleich. Evtl. hat ist die gross/kleinschreibung verschieden, die strings sind verschieden lang oder einer hat irgendwo whiespache zeichen zuviel.

mit dem debugger kannst du dir die strings zur ausführungszeit ansehen indem du einen breakpoint auf die if abfrage setzt, und dann mit der maus über die Variablennamen gehst. Wenn das problem immernoch besteht solltest du die inhalte der strings hex1 und hex2 hier mal posten.
08/29/2012 18:49 .Scare™#3
Es sind die gleichen, ich lasse sie zudem noch in einer msgbox anzeigen umd da ist es ein und das selbe.

Deshalb verstehe ich es nicht.

EDIT;

habe nun gesehen das es daran liegt das die werte von einem stringbuilder kommen. habe sie nun in einen neuen string convertiert und tada, es geht.

danke für dir Hilfe nkkk, mich dünkt es das du hier noch oft hilfst in der .Net szene.. danke dir dafür.

mfg
08/29/2012 20:37 nkkk#4
woher der string kommt sollte eig egal sein.
Natürlcih kannst du einen Stringbuder nicht mit einem string verglichen.

was übrigens auchnicht geht ist z.B:
Code:
            StringBuilder bu = new StringBuilder("ab");
            object s1 = bu.ToString();
            bool b = s1 == bu.ToString();
b ist false obwohl auf beden seiten die gleichen strings sind, da der == operator in object und nicht der von string aufgerufen wird, in soeinem fall muss man equals benutzten.
08/29/2012 22:05 .Scare™#5
Quote:
Originally Posted by nkkk View Post
woher der string kommt sollte eig egal sein.
Natürlcih kannst du einen Stringbuder nicht mit einem string verglichen.

was übrigens auchnicht geht ist z.B:
Code:
            StringBuilder bu = new StringBuilder("ab");
            object s1 = bu.ToString();
            bool b = s1 == bu.ToString();
b ist false obwohl auf beden seiten die gleichen strings sind, da der == operator in object und nicht der von string aufgerufen wird, in soeinem fall muss man equals benutzten.
ah stimmt equals gibt es ja auch noch =)

danke dir, werde es auf diese art auch noch versuchen zu machen, dann erspaare ich mir ein paar viele deklarationen =)

mfg