c# stwitch.isnullorempty
-
08-07-2019 - |
문제
C#에 스위치가있을 수 있습니까? String.Empty
? 나는 이것을 할 수 있다는 것을 안다 :
switch (text)
{
case null:
case "":
break;
}
IF 문의 큰 목록을 원하지 않기 때문에 더 나은 것이 있습니까?
나는 교체하려고 노력하고있다 :
if (String.IsNullOrEmpty(text))
blah;
else if (text = "hi")
blah
해결책
다음과 같은 것을 제안합니다.
switch(text ?? String.Empty)
{
case "":
break;
case "hi":
break;
}
그게 당신이 찾고있는 것입니까?
다른 팁
당신의 예에 무슨 문제가 있습니다 switch
성명?
switch (text)
{
case null:
case "":
foo();
break;
case "hi":
bar();
break;
}
그것은 작동합니다 (그리고 어떤 이유로 나를 놀라게 한 이유 - 나는 그것이 불평하거나 충돌 할 것이라고 생각했다. null
사례) 분명합니다.
그 문제에 대해 왜 걱정하는 이유 String.Empty
? 나는 여기서 뭔가를 놓치고있다.
어때
if (string.isNullOrEmpty(text))
{
//blah
}
else
{
switch (text)
{
case "hi":
}
}
로부터 선적 서류 비치 의 String.Empty
:
이 필드의 값은 제로 길이 문자열 ""입니다.
나는 이것을 사이의 차이가 없다는 것을 의미한다고 해석합니다. ""
그리고 String.Empty
. 왜 그들을 구별하려고합니까?
빈 문자열은 ""입니다. 당신이 그 이유 ~할 수 있다 "string.empty"는 "string.empty"는 "string.empty"는 "empty"는 클래스 "String"의 필드이고 "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "
상수 값은 경우, string.empty는 필드이며 런타임에 변경 될 수 있습니다. (이 경우 동일하게 유지되지만 각 클래스의 모든 정적 필드가 일정한 값이 아닙니다.)
'if'의 경우 해당 조건은 실행 시간에 평가됩니다. ~ 아니다 일정한 값이 필요합니다.
나는 이것이 이유를 설명하기를 바랍니다.
내가 방금 알아 차린 것은 당신이 할 수 있다는 것입니다 IF/ELSE 및 SWINGE 문장을 결합하십시오! 전제 조건을 확인해야 할 때 매우 유용합니다.
if (string.IsNullOrEmpty(text))
{
//blah
}
else switch (text)
{
case "hi":
Console.WriteLine("How about a nice game of chess?");
break;
default:
break;
}
string StrMode;
if (!string.IsNullOrEmpty(StrMode))
{
switch (StrMode.Trim())
{
case "Souse":
{
//Statement Eg:
MesssageBox.Show("Souse");
break;
}
case "Company Agent":
{
//Statement Eg:
MesssageBox.Show("Souse");
break;
}
default:
return;
}
}