문자열이 ""
과 같은지 확인하고, 사용하지 않는 경우 기본값을 사용하는 프로그램을 만들고있었습니다. 나는 string != "" ? string : "default value"
을 할 수 있다는 것을 알고 있지만, 나는 계속 입력하면 string
처럼 비효율적이라고 생각합니다. 물론 string
을 쓰는 것은 나에게는 문제가되지 않지만 다른 프로젝트에서 긴 패키지 이름을 가진 문자열을 참조해야한다면 좀 더 짜증이납니다.더 효율적인 삼항 연산자
1
A
답변
1
DavidG의 옵션과 유용한 링크에 따르면이 확장 기능을 사용할 수 있습니다.
public static string IfEmpty(this string str, string alternate)
{
return str?.Length == 0 ? str : alternate;
}
는
(이것은 'STR'가 null의 경우에도 대체 문자열을 반환합니다) 그리고 mystring.IfEmpty("something else")
소스로 사용 What is the difference between String.Empty and "" (empty string)?.
또한 정말 긴 문자열을 참조 할 필요가 없습니다.
3
현재 원하는 작업을 수행 할 수있는 연산자가 없습니다.
그러나 실제로는 여기에 "기본 또는 - 빈 병합 연산자"에 대한 제안이있다 : 당신이 지금 할 수있는 최선은 다음과 같이 확장 메서드를 선언하는 것입니다
https://github.com/dotnet/csharplang/issues/183
:
public static string NullIfEmpty(this string str)
{
return string.IsNullOrEmpty(str) ? null : str;
}
과 같이 사용 :
var foo = yourString.NullIfEmpty() ?? "default value";
당신이 확인하는 경우 당신이 사용할 수있는 null 값? 연산자??. b? .c ?? "태만". 귀하의 경우에, 나는 확장 메소드 – Seb
@Seb을 찾으러 가고 싶습니다. 그러나 문자열은 null이 아닙니다. ""와 같습니다. – Orion31
'a.b.c.d.string.toString() '은 무엇입니까? 예를 들어 줄 수 있습니까? –