string.empty и string.isnullorempty - PullRequest
       1

string.empty и string.isnullorempty

1 голос
/ 30 ноября 2010

У меня есть такая функция, которая проверяет, является ли поле пустым или что, и если пусто, тогда уберите значок setError в сторону текстового поля.

      private bool ValidateHost()
      {
        ErrorProvider errorProvider = new ErrorProvider();
        bool isValid = true;

        //If the txtHost is empty, show a message to user            
        if(txtHost.Text == string.Empty)
            {
            errorProvider.SetError(txtHost, "Please enter the host address");
            isValid = false;
            }
        else
            errorProvider.SetError(txtHost, string.Empty);
        return isValid;
      }

но когда я попытался использовать строку, isnullorempty, я не получил значок seterror .. Не могли бы вы, ребята, скажите, пожалуйста, как правильно использовать string.isnullorempty в этом случае ...

Ответы [ 4 ]

7 голосов
/ 30 ноября 2010

Полагаю, вы пытались использовать его, как если бы это был метод экземпляра, например:

if (txtHost.Text.IsNullOrEmpty())

Это не метод экземпляра - это статический метод, поэтому вы используете его следующим образом:

if (string.IsNullOrEmpty(txtHost.Text))

Это не экземплярный метод, потому что в противном случае, если txtHost.Text было бы нулевым, вызов метода выкинул бы NullReferenceException, чего мы и стараемся избегать.

Вы мог бы написать метод расширения, который мог бы справиться с нулем, но, насколько мне известно, его нет в рамках.

5 голосов
/ 30 ноября 2010

string.IsNullorEmpty() - статический метод, который вызывается следующим образом:

if (string.IsNullOrEmpty(txtHost.Text))
{
    errorProvider.SetError(txtHost, "Please enter the host address"); 
    isValid = false;
}

Вы также можете рассмотреть аналогичные string.IsNullOrWhitespace, если пробелы, табуляции и т. Д. Также недопустимы.

0 голосов
/ 30 ноября 2010

Может ли это быть не проверено на строку?

ErrorProvider errorProvider = новый ErrorProvider ();

Пфф. Шутки в сторону. ErrorProvider должен существовать в форме. Вы просто создаете его на лету (который становится недействительным в конце метода) и даже не подключаете его должным образом в форме.

ErrorProvider должен быть помещен в форму.

0 голосов
/ 30 ноября 2010

Измените ваше условие IF на -

if( string.IsNullOrEmpty(txtHost.Text) ) 
{
  ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...