Пожалуйста, расскажите, почему две строки одинаковы для строкового объекта в случае строки (код написан ниже) - PullRequest
0 голосов
/ 25 декабря 2010
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class ddLlSTeXPT : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Page_Load(object sender, EventArgs e)
    {
          string pass="infoways";

          if(txtbx.Text==pass)
          Response.Write("hello U Logged In");
          else
          Response.Write("hello U cant log In");
    }
}

Но он печатается правильно, если текст в текстовом поле "infoways".Как они указывают на одинаковые ссылки, поскольку двум объектам назначается разная память?

1 Ответ

5 голосов
/ 25 декабря 2010

Я не совсем уверен, что вы спрашиваете здесь.Код, который вы опубликовали, проверяет, является ли текст в элементе управления TextBox эквивалентным строке «infoways».Если это так, отображается сообщение «Привет U Logged In»;если нет, то отображается сообщение «привет U не может войти».Кажется, ваш код работает должным образом.

Оператор == перегружен для класса String, поэтому, когда вы пишете string1 == string2, это по существу эквивалентно String.Equals(string1, string2).В отличие от других объектов, оператор == не сравнивает ссылочное равенство для типов String.Как объясняется в документации :

Хотя строка является ссылочным типом, операторы равенства (== и! =) Определяются для сравнения значений строковых объектов, а не ссылок,Это делает тестирование на равенство строк более интуитивным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...