2010-11-30 3 views
1

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

 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 в этом случае ..

+1

Как вы * используете его? Он должен отлично работать с `if (string.IsNullOrEmpty (txtHost.Text))`. – 2010-11-30 10:59:35

+0

"значок seterror"? – annakata 2010-11-30 11:01:22

ответ

5

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

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

Вы можете также рассмотреть подобное string.IsNullOrWhitespace, если пространства, вкладки и т.д., также недействительны.

0

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

if(string.IsNullOrEmpty(txtHost.Text)) 
{ 
    ... 
} 
7

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

if (txtHost.Text.IsNullOrEmpty()) 

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

if (string.IsNullOrEmpty(txtHost.Text)) 

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

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

0

Может быть, это не значит, что он строит тест?

ErrorProvider errorProvider = new ErrorProvider();

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

ErrorProvider следует поместить в форму.