[string] VB.NET의 여러 줄 문자열
Python과 같은 VB.NET에서 여러 줄 문자열을 갖는 방법이 있습니까?
a = """
multi
line
string
"""
아니면 PHP?
$a = <<<END
multi
line
string
END;
물론 그렇지 않은 것
"multi" & _
"line
답변
XML 리터럴 을 사용 하여 비슷한 효과를 얻을 수 있습니다 .
Imports System.XML
Imports System.XML.Linq
Imports System.Core
Dim s As String = <a>Hello
World</a>.Value
특수 문자가있는 경우 CDATA 블록을 사용해야합니다.
Dim s As String = <![CDATA[Hello
World & Space]]>.Value
2015 년 업데이트 :
여러 줄 문자열 리터럴은 Visual Basic 14 ( Visual Studio 2015 ) 에 도입되었습니다 . 위의 예는 이제 다음과 같이 쓸 수 있습니다.
Dim s As String = "Hello
World & Space"
MSDN article isn't updated yet (as of 2015-08-01), so check some answers below for details.
VB-14 Github 저장소에 Roslyn New-Language-Features 기능 이 추가되었습니다 .
답변
VB.Net에는 이러한 기능이 없으며 Visual Studio 2010에서는 제공 되지 않을 것입니다. jirwin이 참조하는 기능을 암시 적 라인 연속이라고합니다. 여러 줄로 된 문장이나 표현식에서 _를 제거하는 것과 관련이 있습니다. 이렇게하면 _로 여러 줄 문자열을 종료 할 필요가 없지만 VB에는 여전히 여러 줄 문자열 리터럴이 없습니다.
여러 줄 문자열의 예
Visual Studio 2008
Dim x = "line1" & vbCrlf & _
"line2"
Visual Studio 2010
Dim x = "line1" & vbCrlf &
"line2"
답변
이 변형을 사용했습니다.
Dim query As String = <![CDATA[
SELECT
a.QuestionID
FROM
CR_Answers a
INNER JOIN
CR_Class c ON c.ClassID = a.ClassID
INNER JOIN
CR_Questions q ON q.QuestionID = a.QuestionID
WHERE
a.CourseID = 1
AND
c.ActionPlan = 1
AND q.Q_Year = '11/12'
AND q.Q_Term <= (SELECT CurrentTerm FROM CR_Current_Term)
]]>.Value()
문자열에서 <>를 허용합니다.
답변
Visual Studio 2015부터 여러 줄 문자열을 사용할 수 있습니다.
Dim sql As String = "
SELECT ID, Description
FROM inventory
ORDER BY DateAdded
"
유용성을 극대화하기 위해 문자열 보간 과 결합 할 수 있습니다 .
Dim primaryKey As String = "ID"
Dim inventoryTable As String = "inventory"
Dim sql As String = $"
SELECT {primaryKey}, Description
FROM {inventoryTable}
ORDER BY DateAdded
"
참고 보간 된 문자열로 시작하는 것이 $
당신이 알아서해야 할 "
, {
그리고 }
내부에 포함 – 변환을 그들에게로 ""
, {{
또는}}
각각.
위의 코드 예제에서 보간 된 부분의 실제 구문 강조 표시 를 볼 수 있습니다 .
Visual Studio 편집기에 의한 인식이 리팩토링과 함께 작동하는지 (예 : 변수의 대량 이름 변경) 궁금하다면 코드 리팩토링이 이것과 함께 작동합니다. 또한 IntelliSense, 참조 횟수 또는 코드 분석도 지원합니다.
답변
여러 줄 문자열 리터럴이 Visual Basic 14.0에 도입되었습니다-https: //roslyn.codeplex.com/discussions/571884
이제 VS2015 Preview에서 http://www.visualstudio.com/en-us/downloads/visual-studio-2015-downloads-vs를 사용할 수 있습니다 (이전 버전을 타겟팅 할 때도 VS2015를 계속 사용할 수 있음에 유의하십시오) .NET 프레임 워크 버전)
Dim multiline = "multi
line
string"
VB 문자열은 기본적으로 C # 동사 문자열과 동일합니다. \ n과 같은 백 슬래시 이스케이프 시퀀스를 지원하지 않으며 문자열 내에서 줄 바꿈을 허용하며 큰 따옴표 “”로 따옴표 기호를 이스케이프합니다.
답변
이것은 나에게 정말 유용한 기사 였지만 아무도 연결 하는 방법에 대해 언급하지 않았습니다. 99 %의 시간을 할애 해야하는 변수를 보내고 싶을 때 .
… <% = 변수 %> …
방법은 다음과 같습니다.
<SQL>
SELECT * FROM MyTable WHERE FirstName='<%= EnteredName %>'
</SQL>.Value
답변
글쎄, 파이썬을 사용하는 것처럼 보이므로 텍스트를 파이썬으로 복사하는 것이 좋습니다.
s="""this is gonna
last quite a
few lines"""
그런 다음 :
for i in s.split('\n'):
print 'mySB.AppendLine("%s")' % i
# mySB.AppendLine("this is gonna")
# mySB.AppendLine("last quite a")
# mySB.AppendLine("few lines")
또는
print ' & _ \n'.join(map(lambda s: '"%s"' % s, s.split('\n')))
# "this is gonna" & _
# "last quite a" & _
# "few lines"
적어도 그것을 복사하여 VB 코드에 넣을 수 있습니다. 붙여 넣기 버퍼에있는 모든 작업에 대해 핫키를 바인딩하는 경우 보너스 포인트 : Autohotkey 를 사용하면 가장 빠릅니다 . SQL 포매터에도 동일한 아이디어가 효과적입니다.