2010-11-30 5 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 아이콘을 못하고 있어요 .. 너희들은 PLZ ..이 경우 string.isnullorempty를 사용하는 적절한 방법이 무엇인지 말해 줄 수

+1

* 어떻게 사용 했습니까? 'if (string.IsNullOrEmpty (txtHost.Text))'와 완벽하게 잘 맞아야합니다. –

+0

"seterror 아이콘"? – annakata

답변

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()) 

그것은 인스턴스 방법이 아니다 - 그것은이다 정적 메소드이므로 다음과 같이 사용하십시오 :

그렇지 않으면 인스턴스 메소드가 아닙니다. txtHost.Text이 null 인 경우 메서드 호출은 NullReferenceException을 반환합니다. 이는 정확하게 피하려는 것입니다.

null에 대처할 수있는 확장 방법을 작성할 수 있지만, 알고있는 한 프레임 워크에는 하나도 없습니다.

+1

플러스 1 이유는 물론. – StuperUser

0

그가 문자열 테스트에 만족하지 않을 수 있습니까?

ErrorProvider errorProvider = new ErrorProvider();

hmpf. 진지하게. ErrorProvider가 폼에 있어야합니다. 당신은 단지 teh fly (hthe 메서드의 끝 부분에서 무효화)에서 하나를 생성하고 있으며 폼에 적절하게 연결하지도 않습니다.

ErrorProvider를 양식에 붙여야합니다.

관련 문제