다중 행 문자열 변수
.Net(C# 및 VB.NET)에서 다음과 같은 여러 줄 텍스트가 있는 경우:
__ __ _
\ \ / / | |
\ V /___ _ _ _ __ | | ___ __ _ ___
\ // _ \| | | | '__| | | / _ \ / _` |/ _ \
| | (_) | |_| | | | |___| (_) | (_| | (_) |
\_/\___/ \__,_|_| \_____/\___/ \__, |\___/
__/ |
|___/
변수를 이렇게 설정할 수 있습니까?
Dim Logo As String = ("
__ __ _
\ \ / / | |
\ V /___ _ _ _ __ | | ___ __ _ ___
\ // _ \| | | | '__| | | / _ \ / _` |/ _ \
| | (_) | |_| | | | |___| (_) | (_| | (_) |
\_/\___/ \__,_|_| \_____/\___/ \__, |\___/
__/ |
|___/ ")
Console.WriteLine(Logo)
이것 대신에:
Console.WriteLine("__ __ ")
Console.WriteLine("\ \ / / | | ")
Console.WriteLine(" \ V /___ _ _ _ __ | | ___ __ _ ___ ")
Console.WriteLine(" \ // _ \| | | | '__| | | / _ \ / _` |/ _ \ ")
Console.WriteLine(" | | (_) | |_| | | | |___| (_) | (_| | (_) |")
Console.WriteLine(" \_/\___/ \__,_|_| \_____/\___/ \__, |\___/ ")
Console.WriteLine(" __/ | ")
Console.WriteLine(" |___/ ")
그렇지 않으면:
Dim Logo As String = ( _
"__ __ _ " & vbNewLine & _
"\ \ / / | | " & vbNewLine & _
" \ V /___ _ _ _ __ | | ___ __ _ ___ " & vbNewLine & _
" \ // _ \| | | | '__| | | / _ \ / _` |/ _ \ " & vbNewLine & _
" | | (_) | |_| | | | |___| (_) | (_| | (_) |" & vbNewLine & _
" \_/\___/ \__,_|_| \_____/\___/ \__, |\___/ " & vbNewLine & _
" __/ | " & vbNewLine & _
" |___/ ")
처음에는 c#로 표시했지만 VB 코드를 표시합니다.c#의 경우: 사용@
지정자:
string myText =
@"line 1
line 2
line 3"
문자열의 시작 부분에 빈 줄을 사용하지 않으려면 다음을 입력해야 합니다.@"
제가 위에서 했던 것처럼, 당신의 텍스트의 첫 줄과 같은 줄에 있습니다.
VB.NET의 경우 이를 직접 지원하지는 않지만 다음 답변에서 nice hack을 사용하여 해결할 수 있습니다.
Dim s As String = <a>line 1
line 2
line 3</a>.Value
문자열 리소스를 만드는 것도 고려해 보십시오. 여기에 줄 바꿈을 추가할 수 있습니다(이 답변의 참고 사항에 따라 shift-enter를 사용해야 함). 다음과 유사한 방법으로 리소스를 로드합니다.
Dim myString As String = My.Resources.MyString
Visual Studio 2015용 업데이트: 분명히 vb.net 은 여기서 어려운 경우였지만, VS2015 기준으로 c# 동사 문자열과 유사한 방식으로 다중 줄 문자열을 지원하지만 이전은 지원하지 않습니다.@
.
문자열에 포함된 줄 구분 기호는 선택한 편집자가 제공하는 실제 줄 구분 기호입니다.VS의 경우 이는\r\n
.
예:
출처는 여기입니다.
VS2015 / C#6에 도입된 새로운 보간 문자열의 경우 문자열 앞에 다음과 같이 붙입니다.$@
C#:
string multiline = $@"
[configuration]
name=Fred
age={age}";
VB.NET에서는 다음 항목을 생략합니다.@
:
Dim multiline As String = $"
[configuration]
name=Fred
age={age}"
C#에서는 다음과 같이 원시 문자열(@)을 사용할 수 있습니다.
private string Logo = @"
__ __ _
\ \ / / | |
\ V /___ _ _ _ __ | | ___ __ _ ___
\ // _ \| | | | '__| | | / _ \ / _` |/ _ \
| | (_) | |_| | | | |___| (_) | (_| | (_) |
\_/\___/ \__,_|_| \_____/\___/ \__, |\___/
__/ |
|___/ ";
Verbatim 문자열을 사용합니다.
그@
기호는 문자열 생성자에게 줄 바꿈을 무시하도록 합니다.
자세한 내용은 MSDN을 참조하십시오.문자열 리터럴 대 Verbatim 문자열
예를들면
string verbatim = @"v
e
r
batim"
당신의 예
Dim Logo As String = (@"
__ __ _
\ \ / / | |
\ V /___ _ _ _ __ | | ___ __ _ ___
\ // _ \| | | | '__| | | / _ \ / _` |/ _ \
| | (_) | |_| | | | |___| (_) | (_| | (_) |
\_/\___/ \__,_|_| \_____/\___/ \__, |\___/
__/ |
|___/ ")
Console.WriteLine(Logo)
예, 사용해야 합니다.@
기호:
string t = @"t
e
s
t"
일종의...
이 작업은 다음과 같습니다.
Dim logo = " " & vbCrLf & _
"__ __ " & vbCrLf & _
"\ \ / / | | " & vbCrLf & _
기타.
원시 문자열 리터럴이 포함된 C# 11 및 .NET 7 버전:
string multilineLogo = """
__ __ _
\ \ / / | |
\ V /___ _ _ _ __ | | ___ __ _ ___
\ // _ \| | | | '__| | | / _ \ / _` |/ _ \
| | (_) | |_| | | | |___| (_) | (_| | (_) |
\_/\___/ \__,_|_| \_____/\___/ \__, |\___/
__/ |
|___/
""";
Dim MultilineLogo = """
__ __ _
\ \ / / | |
\ V /___ _ _ _ __ | | ___ __ _ ___
\ // _ \| | | | '__| | | / _ \ / _` |/ _ \
| | (_) | |_| | | | |___| (_) | (_| | (_) |
\_/\___/ \__,_|_| \_____/\___/ \__, |\___/
__/ |
|___/
""";
언급URL : https://stackoverflow.com/questions/16107697/multiline-string-variable
'programing' 카테고리의 다른 글
Bash 셸에서 ${var}, "$var" 및 "${var}"의 차이점은 무엇입니까? (0) | 2023.05.27 |
---|---|
Node.js로 현재 운영 체제를 확인하는 방법 (0) | 2023.05.27 |
각 그룹의 상위 1개 행 가져오기 (0) | 2023.05.27 |
각도 2: 반응형 폼 컨트롤을 반복합니다. (0) | 2023.05.27 |
비공유 멤버에 대한 참조를 사용하려면 공용 하위를 호출할 때 개체 참조가 발생해야 합니다. (0) | 2023.05.27 |