C# вопросы : Вопрос 1 : 48

Как можно сравнить строки в C#?

 

Уважаемые учащиеся ниже Вы сможете увидеть ответ, перед тем, как ответить, пожалуйста, постарайтесь написать для себя ответ на черновике, и только потом сравните наш ответ с Вашим: 

 

 

 

 


Верно ли наше решение?

Ответ:

В прошлых версиях C# нужно было вызывать у строки .ToString() и использовать операторы != и == для сравнения. Это работает и до сих пор, но компилятор C# сейчас автоматически сравнивает строки по значению, а не по ссылке, при использовании операторов == или != на значениях строкового типа. Если же необходимо сравнить строки по ссылке, это следует делать так: if ((Object) s1 == (Object) s2) {}. Это можно продемонстрировать следующим примером кода:

using System; 
 
public class StringEqualityTest { 
    public static void Main(string[] Args) { 
        string s1 = "foo"; 
        string s2 = s1; 
        string s3 = "foo"; 
        string s4 = "bar"; 
        Console.WriteLine(s1 == s3); 
        Console.WriteLine(s1 == s4); 
        Console.WriteLine((Object) s1 == (Object) s3); 
        Console.WriteLine((Object) s1 == (Object) s2); 
    } 
} 


Выведется:
True
False
False
True
1 балл


© Copyright © 2017 - 2019 Все права защищены. Бесплатное онлайн образование.