VB의 여러 줄 문자열.그물
VB에 여러 줄 문자열을 사용할 수 있는 방법이 있습니까?Python과 같은 NET
a = """
multi
line
string
"""
아니면 PHP?
$a = <<<END
multi
line
string
END;
물론 그렇지 않은 것은
"multi" & _
"line
XML Literals 를 사용하면, 같은 효과를 얻을 수 있습니다.
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.
자세한 내용은 Roslyn New-Language-Features-in-VB-14 Github 저장소에 추가됩니다.
VB.Net에는 이러한 기능이 없으며 Visual Studio 2010에는 제공되지 않습니다.지윈이 참조하고 있는 특징을 암묵적인 선 연속이라고 부릅니다.여러 줄의 문이나 식에서 _를 제거하는 것과 관련이 있습니다.이렇게 하면 _로 여러 줄 문자열을 종료할 필요는 없지만 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 미리보기에서 사용할 수 있습니다. http://www.visualstudio.com/en-us/downloads/visual-studio-2015-downloads-vs (의 이전 버전을 대상으로 하는 경우에도 VS2015를 사용할 수 있습니다).NET 프레임워크)
Dim multiline = "multi
line
string"
VB 문자열은 기본적으로 C# verbatim 문자열과 동일합니다.\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코드에 넣을 수 있어요단축키를 바인드할 경우 보너스 포인트(빠른 시간:자동 키)를 사용하여 붙여넣기 버퍼에 있는 모든 항목에 대해 이 작업을 수행합니다.SQL 포맷터에서도 같은 아이디어가 적합합니다.
XElement 클래스를 사용하는 vb.net의 여러 줄 문자열 리터럴.
Imports System.Xml.Linq
Public Sub Test()
dim sOderBy as string = ""
dim xe as XElement = <SQL>
SELECT * FROM <%= sTableName %>
<ORDER_BY> ORDER BY <%= sOrderBy %></ORDER_BY>
</SQL>
'** conditionally remove a section
if sOrderBy.Length = 0 then xe.<ORDER BY>.Remove
'** convert XElement value to a string
dim sSQL as String = xe.Value
End Sub
언어로서 VB의 가장 짜증나는 점은 바로 그것이다.정말이지, 한번은 파일에 문자열을 쓰고 코드 같은 걸 쓴 적이 있어요.
Dim s as String = file_get_contents("filename.txt")
필요하다면 SQL 서버에서 직접 쿼리를 테스트할 수 있습니다.
현재 방법은 SQL Server에 저장된 프로시저를 사용하여 쿼리 등에 파라미터를 전달할 수 있도록 호출하는 것입니다.
<![CDATA]와 <%=>를 모두 변수로 사용하는 방법을 알게 되었습니다.
기본적으로 VB 변수 전에 CDATA 태그를 종료한 후 다시 추가해야 CDATA가 VB 코드를 캡처하지 않습니다.CDATA 블록이 여러 개 존재하기 때문에 코드 블록 전체를 태그로 감싸야 합니다.
Dim script As String = <code><![CDATA[
<script type="text/javascript">
var URL = ']]><%= domain %><![CDATA[/mypage.html';
</script>]]>
</code>.value
이 문자열을 리소스 파일(예: "내 프로젝트"/리소스)에 삽입한 후 다음을 사용하여 가져올 수 있습니다.
Dim a = My.Resources.Whatever_you_chose
면책사항:나는 비단뱀을 좋아한다.여러 줄의 문자열이 하나의 이유일 뿐입니다.
하지만 VB도 해요.넷, 더 읽기 쉬운 긴 문자열에 대한 단축키입니다.
Dim lines As String() = {
"Line 1",
"Line 2",
"Line 3"
}
Dim s As String = Join(lines, vbCrLf)
다음과 같이 XML을 사용할 수 있습니다.
dim vrstr as string = <s>
some words
some words
some
words
</s>
Visual studio 2010(VB NET)에서 다음을 시도하면 정상적으로 작동합니다.
Dim HtmlSample As String = <anything>what ever you want to type here with multiline strings</anything>
dim Test1 as string =<a>onother multiline example</a>
Visual Studio 2015의 일부로 Visual Basic 14에서 제공 https://msdn.microsoft.com/en-us/magazine/dn890368.aspx
그러나 R#에서는 아직 지원되지 않습니다.좋은 소식은 그들이 곧 지원받을 것이라는 것입니다!Youtrack에서 투표하여 JetBrains에게도 필요함을 알려주시기 바랍니다.
VB에 XML 리터럴이 필요한 경우.라인 코드 변수가 있는 넷에서는, 다음과 같이 실시합니다.
<Tag><%= New XCData(T.Property) %></Tag>
읽기 쉬운 문제이기 때문에 다음 코드를 사용하고 있습니다.
MySql = ""
MySql = MySql & "SELECT myTable.id"
MySql = MySql & " FROM myTable"
MySql = MySql & " WHERE myTable.id_equipment = " & lblId.Text
를 사용할 수도 있습니다.System.Text.StringBuilder
다음과 같은 방법으로 클래스:
Dim sValue As New System.Text.StringBuilder
sValue.AppendLine("1st Line")
sValue.AppendLine("2nd Line")
sValue.AppendLine("3rd Line")
다음으로 다음 명령을 사용하여 여러 줄 문자열을 가져옵니다.
sValue.ToString()
사용하다vbCrLf
또는vbNewLine
테스트한 MessageBoxes 및 기타 많은 컨트롤에서 작동합니다.
Dim str As String
str = "First line" & vbCrLf & "Second line"
MsgBox(str)
str = "First line" & vbNewLine & "Second line"
MsgBox(str)
두 줄의 동일한 Message Box가 표시됩니다.
아니요, VB.NET에는 아직 이러한 기능이 없습니다.VB(visual basic 10)의 다음 버전에서 사용할 수 있습니다(링크).
C# 같은 경우(VB가 없습니다).Net installed) 문자열 앞에 @ 를 붙일 수 있습니다.
foo = @"Multiline
String"
이것은 @"C:와 같은 경우에도 유용합니다.\Windows\System32\" - 기본적으로 이스케이프를 끄고 멀티라인을 켭니다.
언급URL : https://stackoverflow.com/questions/706382/multiline-strings-in-vb-net
'sourcecode' 카테고리의 다른 글
CSS를 사용하여 div의 애스펙트비를 유지합니다. (0) | 2023.04.08 |
---|---|
IMG를 사용하는 경우와CSS 배경 이미지? (0) | 2023.04.08 |
PHP 프레임워크 여부(Cake PHP) (0) | 2023.04.03 |
AngularJS + Django Rest Framework + CORS (CSRF Cookie가 클라이언트에 표시되지 않음) (0) | 2023.04.03 |
TypeScript, React, Eslint 및 단순 Arrow 함수 컴포넌트 문제 (0) | 2023.04.03 |