VB.NET에서 축 어적 문자열 리터럴을 수행하는 방법은 무엇입니까?
VB.NET에서 축 어적 문자열 리터럴을 어떻게 수행 합니까?
이는 다음과 같이 C #에서 수행됩니다.
String str = @"c:\folder1\file1.txt";
즉, 백 슬래시는 이스케이프 문자가 아니라 문자 그대로 처리됩니다.
이것이 VB.NET에서 어떻게 이루어 집니까?
VB.NET의 모든 문자열 리터럴은 그대로 문자열 리터럴입니다. 간단히 쓰기
Dim str As String = "c:\folder1\file1.txt"
VB.NET은 인라인 제어 문자를 지원하지 않습니다. 따라서 백 슬래시는 항상 문자 그대로 해석됩니다.
이스케이프해야하는 유일한 문자는 C # 에서처럼 두 배로 이스케이프되는 큰 따옴표입니다.
Dim s As String = """Ahoy!"" cried the captain." ' "Ahoy!" cried the captain.
@MarkJ는 이미 @Jon Skeet의 게시물에서 이것을 지적했습니다.
VB.Net은 인라인 XML 리터럴을 통해 축 어적으로 사용해야하는 경우이
가증스러운
기능을 지원합니다
.
문자열 캐싱을 고려하십시오! 매번 이것을 평가하지 마십시오 ...
Imports System.Xml.Linq
Dim cmdText as String = <![CDATA[
SELECT
Field1, Field2, Field3
FROM table
WHERE Field1 = 1
]]>.Value
[2015-Jan-5 편집]
VB14 / VS2015는 헛소리없이 여러 줄 문자열을 지원합니다.
Dim cmdText as String = "
SELECT
Field1, Field2, Field3
FROM table
WHERE Field1 = 1"
VB는 \
어쨌든 이스케이프 문자로 취급하지 않으므로 문자열을 일반 리터럴로 작성할 수 있습니다.
Dim str = "c:\folder1\file1.txt"
내가 아는 한, VB는 축어 문자열 리터럴의 다른 주요 목표를 달성 할 수있는 방법이 없습니다. 즉, 여러 줄을 허용하는 것입니다.이를 위해 사용해야 VbCrLf
합니다 . (또는 Environment.NewLine
물론-요구 사항에 따라 다릅니다. 시스템 별 줄 구분 기호를 원할 때도 있고 특정 프로토콜에서 요구하는 특정 줄 구분 기호를 원할 수도 있습니다.)
편집 : VB의 최신 버전은 문자열 리터럴에서 여러 줄을 지원합니다.
확실하지 않은 경우 다음 비교 페이지를 참조하십시오. http://www.harding.edu/fmccown/vbnet_csharp_comparison.html
VB.NET
'No string literal operator
Dim filename As String = "c:\temp\x.dat"
씨#
// String literal
string filename = @"c:\temp\x.dat";
string filename = "c:\\temp\\x.dat";
VB.NET은 "\"를 이스케이프 문자로 인식하지 않습니다. 그러나 추가 솔루션을 사용할 수 있습니다 (예 : 연결보다 느리게 작동한다는 점을 고려하십시오).
Dim s As String = Regex.Unescape("c:\\folder1\\file1.txt\nc:\\folder1\\file2.txt\nc:\\folder1\\file3.txt")
이 경우 문자열 "s"에는 세 줄이 포함됩니다. 기호 "\"는 정규식 메서드 Unescape ()에서 다음 "\"를 보호하므로 매번 두 번 반복됩니다.
"\ n"은 C #과 유사한 "개행"특수 문자입니다. "\ t"(탭) 등을 사용할 수도 있습니다.
VB XML 리터럴은 .vbhtml 면도기 페이지에서 작동하지 않습니다. 다음 릴리스에서 변경되기를 바랍니다.
Dim sourceText As String =
<string>
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections
Imports Microsoft.Win32
Imports System.Linq
Imports System.Text
Imports Roslyn.Compilers
Imports System.ComponentModel
Imports System.Runtime.CompilerServices
Imports Roslyn.Compilers.VisualBasic
Namespace HelloWorld
Module Program
Sub Main(args As String())
Console.WriteLine("Hello, World!")
End Sub
End Module
End Namespace
</string>
참조 URL : https://stackoverflow.com/questions/13155449/how-to-do-a-verbatim-string-literal-in-vb-net
'IT이야기' 카테고리의 다른 글
C ++에서 키 업데이트로 최소 우선 순위 대기열을 사용하는 가장 쉬운 방법 (0) | 2021.03.27 |
---|---|
JAX-WS 클라이언트의 SSLContext를 프로그래밍 방식으로 설정하는 방법 (0) | 2021.03.27 |
Jackson : POJO를 수정하지 않고 JSON에 사용자 지정 속성을 추가하는 방법 (0) | 2021.03.27 |
Gradle : 앱에서 설정되는 플래그를 사용하여 Android 라이브러리에서 BuildConfig를 사용하는 방법 (0) | 2021.03.26 |
ImportError : concurrent.futures.process라는 모듈이 없습니다. (0) | 2021.03.26 |