Ich bin ein wirklich seltsam Problem auftritt ich das folgende Stück Code haben:Windows Phone 8.1 Vergleich Control.Content falsches Ergebnis geben
for (int i = 0; i < Board.Length - 2; i++)
{
var a = Board[i].Content;
var b = Board[i + 1].Content;
var c = Board[i + 2].Content;
if (a == b && a == c &&
(string) a != string.Empty && a != null)
{
MessageDialog msd = new MessageDialog("test");
await msd.ShowAsync();
}
}
Wo Board
eine Reihe von Tasten ist und a, b, c haben der gleiche Wert von "1". Wenn sie jedoch in der if-Anweisung verglichen werden, geben sie alle falsch an? Die anderen Anweisungen, bei denen ich überprüfe, ob die Zeichenfolge leer ist oder null, geben den Wert wahr an.
Was sind die Arten von 'a', 'b' und 'c'? Von der Besetzung innerhalb der if-Anweisung, ich vermute, sie sind 'Objekte', was bedeutet, dass Sie einen Vergleich der Referenzgleichheit statt Gleichheit Vergleich –
Sie haben Recht .. sie sind Objekte Ich dachte, dass es funktioniert wie Windows-Formulare zu nehmen Der Control.text führt zu einer Zeichenfolge, der Inhalt scheint jedoch keine Zeichenfolge zurückzugeben. Wie kann ich Text von Kontrollen vergleichen? Ist 'Content.ToString()' die einzige Möglichkeit? – KOPEUE