2014-09-11 2 views
0

는 우선 내 영어 죄송하려는 내 C#의 경우에 더 낮은 휴식 ... 나는이는 IF :내가 위 첫 글자를 필요

if (imię.Text.Length > 2 && char.IsUpper(imię.Text,0) && char.IsLower(imię.Text,1)==true) 
{ 
    PanelImie.BackgroundImage = Properties.Resources.Check_icon; 
    imietest = true; 
} 
else 
{ 
    PanelImie.BackgroundImage = Properties.Resources.Sign_Error_icon; 
    imietest = false; 
} 
blokowanieOK(); 

그리고 사진에 같은 형태 :

"imię"(이름)과 "nazwisko"(성) 필드에서 첫 글자는 위와 같아야합니다.하지만 나머지 글자는 더 낮고 checkicon은이 상황에서 true가됩니다. 그 순간 나는 어퍼 케이스 ewerywhere를 쓸 수 있고, 나의 프로그램은 나에게 그걸 보여줄 수있다. 괜찮 으면 ... 첫 글자를 위와 같고 글자의 나머지는 더 낮아야한다. 그러면 체크섬은 괜찮을 까?

+0

그래서'if' 조건을 모두 채우면 ('imie') 모두 대문자로 쓰여질 것입니다. –

+0

이 링크를 확인하십시오 : http://stackoverflow.com/questions/4135317/make-first-letter-of-a-string-upper-case – felixgondwe

+0

나는이 시나리오에서 그가 "무엇인가"문자열을 만들고 있다고 생각하지 않습니다. 그는 그것이/아닌지 테스트하고 있습니다. 나는 믿는다. 그러나 그는 아직 명백하게하지 않고 있었다 –

답변

2

당신의 if 문에 LINQ의 비트를 사용

if (imię.Text.Length > 2 && char.IsUpper(imię.Text[0]) && imie.Text.Skip(1).All(char.IsLower)) 
+1

왜 첫 번째 문자가 IsUpper인지 확인한 다음 모든 문자 (첫 번째 문자 포함)가 IsLower인지 테스트할까요? 이 조건은 결코 충족되지 않습니다. –

+0

누굽니 까? 스킵 – Jonesopolis

+0

+1을 편집하는 것을 잊어 버렸습니다. –

1
if (imię.Text.ToString().Length > 2 && imię.Text == imię.Text.ToString().ToTitleCase()) 
    { 

    } 

길이 검사 (imię.Text.Length> 2) 전용 (문자의 오류를 방지하기 위해 귀하의 질문에 포함되어있는 경우, 비록 .IsLower (imię.Text, 1)) if 문에는 필요하지 않습니다.

+0

최고의 답변. +1. 변수 이름과 본문을보다 관련성있게 변경하려고합니다. –

+0

방금 ​​했어요. 감사! –

+0

길이 검사를하지 않는 것으로 나타났습니다. –

관련 문제